总结:
1.不能重载的运算符: . 和 .* 和 ?: 和 :: 和 sizeof 和 typeid
2.重载运算符有两种基本选择: 类的成员函数或者友元函数, 建议规则如下:
运算符
建议使用
所有一元运算符
成员函数
= () [] ->
必须是成员函数
+= -= /=...
分类:
编程语言 时间:
2014-06-15 17:18:07
阅读次数:
265
//1.17//遍历数组a,计算其中负数的个数int amount=0;for(int i=0;i<strlen(a);i++) if(a[i]<0) ++amount;//1.19//每隔输10个值for(int val=lower,count=1;val<=upper;++v...
分类:
编程语言 时间:
2014-06-15 10:50:29
阅读次数:
268
第15章 友元、异常和其他
1.友元不仅有友元函数,还能是友元类
还可以将类中的某一个成员函数指定为另一个类的友元
尽管友元被授予从外部访问私有部门的权限,单并不与面向对象编程思想相愽,相反,它们提高了公有接口的灵活性
2.类的成员函数作为其他类的友元,涉及到类的声明顺序。
还有一个函数作为两个类的友元
这方面内容看P607-611
3.嵌套类:在另一个类中声明的类被称为嵌套类
类...
分类:
编程语言 时间:
2014-06-14 17:58:31
阅读次数:
246
1.递增递减运算符
C++语言并不要求递增递减运算符必须是类的成员。但是因为他们改变的正好是所操作对象的状态,所以建议设定为成员函数。
对于递增与递减运算符来说,有前置与后置两个版本,因此,我们应该为类定义两个版本的递增与递减运算符。...
分类:
编程语言 时间:
2014-06-13 22:04:41
阅读次数:
418
vector对象是如何增长的
当需要更多空间的时候,会重新分配比新空间需求更大的内存空间,作为备用
管理容器的成员函数
shrink_to_fit //只适用于vector,string,deque
capacity reserve //只适用于vector,string
c.shrink_to_fit() //请将capacity()减少为与size相同大小
c.c...
分类:
编程语言 时间:
2014-06-13 20:51:16
阅读次数:
279
1.构造函数:
构造函数是一个特殊的、与类同名的成员函数,用于给每个成员设置适当的初始值。
构造函数不能有返回值,函数名为类名。
缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空。缺省构造函数是不带参数的。
创建一个对象时,系统自动调用构造函数。
总结:
1.构造函数可以重载...
分类:
编程语言 时间:
2014-06-10 14:27:33
阅读次数:
300
1.赋值运算符
先以赋值运算符引入后面要说的运算符重载,上一节说了构造函数、拷贝构造函数;一个类要想进行更好的控制,需要定义自己的构造函数、拷贝构造函数、析构函数、当然,还有赋值运算符。常说的三大函数就是指拷贝、赋值、析构。
如果一个类不定义自己的赋值运算符,会自己生成一个默认的赋值运算操作,这个默认的赋值运算满足一般类的需求。但是当类的功能、作用逐渐完善时,就...
分类:
编程语言 时间:
2014-06-10 10:50:06
阅读次数:
235