1.类组合的构造函数
类名::类名(对象成员所需的形参,本类成员形参):对象1(参数),对象2(参数)
{
本类成员初始化
}
2.
int a=10;
int b(a);//即b=a=10
myclass circle();//将调用构造函数初始化
myclass newcircle(circle);//将调用 拷贝构造函数,
//若没得,则调用缺省的拷贝构造函数
3.内联函数(比较简单,可直接在类里面定义)
类的外部定义函数(比较复杂)
构造函数,拷贝函数在定义时不允许有返回值(void也不允许)
4.数据共享
将数据和使用该数据的函数封装在类中,以实现此功能.
(实现类内函数数据共享,同时保护数据)
5.类属性:静态数据成员
class employee
{
private :
int ID;
char *name;
static int total;//职工总数,必须在类外面定义和初始化
public:
...
};
int employee::total=0;//!!!在类外面定义和初始化(此时就给total分配了内存空间,
//而employee类还没分配(类似于结构体定义,在定义具体结构体后才分配空间))
employee Lee,Chen,Chou;
//则职工总数total=3,给一个职工类的total只占用一个存储空间
6.友元
class Radius
{
private :
int R;
public:
void GetR()
{return R;}
friend long Cube(Radius &r);//声明cube()函数为友元
};
long Cube(Radius &r)
{
Return r.R*r.R*r.R;//如果没有声明cube()函数为友元的话,则要 r. GetR()*r. GetR()*r. GetR().
}
注意:可以作为友元的可以为函数,另一个类,具体成员.
还可以为另一个类的成员函数,如:
class student;//前项声明
class teacher
{
protected:
…
public:
void givescore(student &stu,int s)
{
stu.score=s;
}
};
class student
{
protected:
int score;
int IDNum;
public:
friend void teacher:: givescore(student &stu,int s);
};
注意:
友元不能传递,而且为单项的!!!