C++_class相关内容分享 ,开冲!!!
1.构造函数
构造函数可以分为有参构造和无参构造,其中当类中没有定义构造函数,则会默认定义一个无参的构造函数.
2.析构函数
析构函数会在所创建的对象内存完全被回收时调用,如果函数缺省析构函数则会自动调用系统的默认,一般只有在new 变量时,或者需要手动释放时,才定义析构函数
3.拷贝构造函数
拷贝构造函数也是构造函数,只不过是用已初始化好的同一个对象去初始化另一个对象.
4.拷贝赋值函数
拷贝赋值函数是在对象已初始化后,用另一个对象去修改对象,实现两个对象的值一样.
class Test{
private:
int no;
string name;
int salary;
public:
Test(){ //无参构造函数
}
Test(int no,int name,int salary){ //有参构造
this->no = no; //this 为所定义的对象的地址,在对象函数中自动缺省
this->name = name;
this->salary = salary;
}
Test(const Test& t):no(t.no),name(t.name),salary(t.salary){ //可以用初始化列表来初始化成员变量
}
Test& operator=(const Test& t){ //拷贝赋值函数
if(this != &t){
/*
no = t.no;
name = t.name;
salary = t.salary;
*/
//这种方法使用范围更广,尤其在使用new时
Test mid(t);
swap(no,mid.no);
swap(name,mid.name);
swap(salary,mid.salary);
}
return *this;
}
~Test(void){ //析构函数
}
};