c++不创建对象,直接用构造函数调用类的公共函数为什么可以

2025-04-06 12:01:49
推荐回答(2个)
回答1:

可以显示调用,不过只能用于初始化时。假设有类A,并有构造函数A(int,int);在定义A的对象a时,可以显示调用构造函数,写作Aa=A(1,1);但是更常用和更简洁的写法为Aa(1,1);所以显示调用构造函数的方法并不常用,但C++的语法是支持这种写法的。

回答2:

语法上是可以的,相当于编译器创建了一个隐形的对象,这种写法在进行参数传递的时候可以使用。不妨假设有一个类A,类内有构造函数A(int a),不妨再假设有一个功能函数fun(A a),它的参数类型是A,需要进行参数传递。那么在进行函数传参时可以写成fun(A(1))。这样子就不需要先定义类对象,再传参,简化了程序。