c++匿名对象

匿名对象

没有名字的对象。

这是一个自定义的类。

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;
}

如果单纯的想调用函数,我们可以不必将类实例化,仅仅需使用匿名对象定义即可,更加简洁。

你可能感兴趣的:(C++,c++,算法,开发语言)