c++ 创建类对象 Base obj; 和Base obj() 这两个写法有什么区别
时间: 2024-02-05 19:02:23 浏览: 135
在C++中,类的对象可以使用两种方式进行创建和初始化。
第一种方式是使用默认构造函数,即:
```cpp
Base obj;
```
这种方式会在栈上创建一个名为obj的对象,并使用默认构造函数进行初始化。
第二种方式是使用函数调用操作符重载,即:
```cpp
Base obj();
```
这种方式实际上是定义了一个函数,这个函数的返回值是Base类型的对象。在C++中,如果函数的返回值是一个对象,那么函数调用的时候可以省略括号,因此上面的代码等价于:
```cpp
Base obj;
```
但是这种写法可能会造成一些误解,因为它看起来像是在声明一个函数而不是创建一个对象。因此,建议在创建对象时使用第一种方式,即省略括号的方式:
```cpp
Base obj;
```
这种写法更加清晰明了,易于理解。
阅读全文