对象定义
(1)定义类的同时定义对象
class Ex
{
int i;
public:
int Mod()
{
return I;
}
}data1,data2; //定义两个对象data1和data2
(2)先定义类再定义对象
class Ex
{
int i;
public:
int Mod()
{
return I;
}
};
Ex data1,data2; //定义两个对象data1和data2
也可以如下定义:
Ex data1,data2;
Ex *ptu,ex[10],&rex1=data1;
其中,*ptu 是指向 Ex 类对象的指针,ex 是对象数组名,公有10个元素,每个元素都是 Ex 的对象,rex1 是 Ex 类对象的引用,通过初始化使 rex1 指向 data1 所在的内存地址。
对象成员的引用
(1)一般格式
对象名.数据成员名 或者 对象名.成员函数名
(2)对象指针
如果定义指向对象指针,则访问(引用)对象成员时,应使用 “->” 操作符,其一般格式为:
对象名->数据成员名 或者 对象名->成员函数名
对象赋值
同类对象之间可以进行赋值,当一个对象赋值给另一个对象时,所有的数据成员将会逐位拷贝。例如,a和b是同类型的两个对象,假设b已经定义,则执行 a=b; 语句后,将把b的数据成员的值逐位拷贝给对象 a 。
由一个对象初始化另一个对象时,系统将自动调用拷贝构造函数或默认拷贝构造函数。
拷贝构造函数的特点:
- 与类同名,并且不指定返回类型。
- 只有一个参数,并且该参数是该类对象的引用。
- 如果一个类中没有定义拷贝构造函数,则系统自动生成一个默认的拷贝构造函数,该默认的拷贝构造函数的功能是将已知对象的所有数据成员拷贝给相应对象的所有数据成员。
拷贝构造函数在一下三种情况下会被调用:
- 用类的一个对象去初始化该类的另一个对象时。
- 函数的参数是类的对象,调用函数进行形参和实参的结合时。
- 函数的返回值是类的对象,函数执行完返回调用函数时。