1 构造函数 :声明该类对象是,构造函数将被自动调用。
先声明 后调用构造函数。
Dateofyear date1(7,4) ,date2(5,5)
相当于
Dateofyear date1;
Dateofyear date2;
date1.Dateofday(7,4);
date2.Dateofday(5,5);
2 构造函数显示调用:
构造函数也可以在对象已经声明过后再次调用.
显示调用构造函数来构造一个匿名对象,用来存储一个新值。
匿名对象就是指没有用任何变量来命名的对象。
holiday=DayofYear(5,5);
3 成员函数不修改调用对象值。在函数后加const
void output() const;
4 内联函数:在类定义中给出成员函数的完整定义。
在编译时,内联函数的代码将会被直接插入到每个调用该内联函数的地方
5 静态变量: 一个类所有的对象都要共享一个变量。
6 向量:
capacity() 获取向量的容量。其为这些元素所分配的内存空间大小。
向量的大小指的是向量中所包含的元素个数。
8章
友元函数:拥有成员函数的一切权利的非成员函数。
自动类型转换:
构造函数的自动类型转换:如果类定义中包含了合适的构造函数,那么系统会自动进行某些类型转换。
所有自动类型的仅仅对第二个参数起作用。
1 fullAmount=baseAmount+25;
+函数的参数是money,而25是int,于是从构造函数中找寻。
构造函数将25转换成money. 如果构造函数中没有将int 转换为money对象的构造函数
则编译器提示错误。
2 如果将加号作为成员操作符重载。
fullAmount=25+baseAmount;
则错误。
因为25不能作为调用对象,money类的构造函数自动类型转换仅仅对参数有用,而对调用对象不适用。
若是非成员函数重载,非成员函数重载可以使所有的参数都能进行自动类型转换。
友元类:
如果将F声明为类c的友元,代码框架为:
class F;//提前声明
class c{
public :
.......
friend class f;
}
先声明 后调用构造函数。
Dateofyear date1(7,4) ,date2(5,5)
相当于
Dateofyear date1;
Dateofyear date2;
date1.Dateofday(7,4);
date2.Dateofday(5,5);
2 构造函数显示调用:
构造函数也可以在对象已经声明过后再次调用.
显示调用构造函数来构造一个匿名对象,用来存储一个新值。
匿名对象就是指没有用任何变量来命名的对象。
holiday=DayofYear(5,5);
3 成员函数不修改调用对象值。在函数后加const
void output() const;
4 内联函数:在类定义中给出成员函数的完整定义。
在编译时,内联函数的代码将会被直接插入到每个调用该内联函数的地方
5 静态变量: 一个类所有的对象都要共享一个变量。
6 向量:
capacity() 获取向量的容量。其为这些元素所分配的内存空间大小。
向量的大小指的是向量中所包含的元素个数。
8章
友元函数:拥有成员函数的一切权利的非成员函数。
自动类型转换:
构造函数的自动类型转换:如果类定义中包含了合适的构造函数,那么系统会自动进行某些类型转换。
所有自动类型的仅仅对第二个参数起作用。
1 fullAmount=baseAmount+25;
+函数的参数是money,而25是int,于是从构造函数中找寻。
构造函数将25转换成money. 如果构造函数中没有将int 转换为money对象的构造函数
则编译器提示错误。
2 如果将加号作为成员操作符重载。
fullAmount=25+baseAmount;
则错误。
因为25不能作为调用对象,money类的构造函数自动类型转换仅仅对参数有用,而对调用对象不适用。
若是非成员函数重载,非成员函数重载可以使所有的参数都能进行自动类型转换。
友元类:
如果将F声明为类c的友元,代码框架为:
class F;//提前声明
class c{
public :
.......
friend class f;
}