/********************************************************/
/**************---About 匿名对象-------**************/
/**************---Author: Tibruce Zhao-----**************/
/**************---Date: 2015/10/22------***************/
/********************************************************/
#include<iostream>
#include<string>
using namespace std;
class Teacher
{
string name;
string course;
public:
Teacher(const char* n,const char*c):name(n),course(c){
cout<<"Creating "<<course<<"'s teacher is "<<name<<endl;
}
Teacher(const Teacher& t):name(t.name),course(t.course){
cout<<"Coping "<<course<<"'s teacher is "<<name<<endl;
}
~Teacher(){
cout<<"Dismissing "<<course<<"'s teacher is "<<name<<endl;
}
};
int main()
{
Teacher t1("Mr Zhao","C++");
Teacher t2=t1;//初始化
Teacher t3=Teacher("Ms Wang","Matlab");//用临时对象来初始化一个新对象,编译器一般会优化成直接用创建临时对象的参数来创建新对象。
t2=t3;//不会调用构造函数,因为没有创建新对象,赋值
t2=Teacher("Ms Li","Consult");//赋值,临时对象会立即释放
return 0;
}
【c++程序】匿名对象
最新推荐文章于 2024-10-22 23:04:04 发布