class myclass { public: myclass(int a) { cout<<a<<"Constructor!"<<endl; x=a; } void show(myclass my) { cout<<"Function:x="<<my.x<<endl; } ~myclass() { cout<<x<<"Deatructor!"<<endl; } private: int x; }; void main() { myclass my(5); my.show(10); }
如果类的成员函数参数定义为类的对象,而实际调用该成员函数时,没有给出类的对象,则编译器会把参数自动根据类的构造函数转化为类对象。但是,如果类中没有相应的构造函数,则会出错。
此题编译器会调用构造函数产生匿名对象,在调用成员函数show(),产生匿名对象的同时,也会调用类的构造函数