1. 通过参数初始化表进行类成员初始化:
class Time:
{ int hour}
类外定义构造函数则为:
Time::Time(int h):hour(h){};
Time::是类外定义函数是指出是类Time的函数;
Time(int h):是Time类的同名构造函数,(int h )是所需参数。
hour (h){} , 在:后面的hour(h)等价于hour=h。 多个成员初始化可以用,隔开
如:Example::Example():a(8),b(2){} 即a初始化为8,b为2.
常用于对const成员初始化。
2. new方法动态建立对象
如 Time time1 这种 类名跟对象名的方式是静态定义,程序运行中不能释放空间。
动态建立:
Time* pt = new Time(h);
(h)是建立时输入的构造函数的参数,注意的是new方法返回的是指针,通过指针来访问。
3. static 静态成员
1. 静态成员是一块类所有对象公用的空间,在类声明完后就分配了空间。
关键词: 共享 属于类而非对象。
所有成员均可以访问静态成员,但是是以自己所属的类的名义。
初始化:
static成员通过类体外初始化
如 int Box::height = 10;
可以通过 Box::volume()来引用,也可以通过a.volume()来引用,后者只是用了a的类型Box。
静态成员函数由于没有this指针(所有对象共享),只能访问静态成员,或者:
a.height。
4. 友元函数
class A
{friend void display( A& t) }
就会在A中定义一个友元函数display, 其中输入参数为A的一个对象t。
这样的意义在于display就可以访问A中的private成员。
如:
Time t1;
display(t1);
同样,友元类也是类似的通过friend来声明。