匿名对象
没有名字的对象。
这是一个自定义的类。
class A { public: A(int a = 0) :_a(a) { cout<<"A(int a = 0)" << endl; } ~A() { cout << "~A()" << endl; } private: int _a; };
- 生命周期只有一行
- 没有名字
int main() { A a1; //正常定义一个对象 // A aa1(); //不能这么定义对象,因为编译器无法识别这个是函数声明,还是对象的定义。 A(); //匿名对象定义方法。 生命周期只有一行,下一行直接调用析构函数。 }
匿名对象有什么用呢?
比如有这样一个类,我们只想使用类的一个功能,但并不需要使用对象。
class Solution { public: int Sim_Solution(int n) { //..... return n; } }; int main() { Solution slt; slt.Sim_Solution(10); Solution().Sim_Solution(10); //只需一行即可。 return 0; }
如果单纯的想调用函数,我们可以不必将类实例化,仅仅需使用匿名对象定义即可,更加简洁。