首页 > 技术文章 > C/C++中new关键字是否加括号的区别

hu983 2016-05-20 22:46 原文

代码:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 class A{
 6     public:
 7         int a;
 8 };
 9 
10 int main(){
11 
12     A *a1 = new A;
13     A *a2 = new A();
14     cout<<a1->a<<endl;
15     cout<<a2->a<<endl;
16 
17     A a3;
18     cout<<a3.a<<endl;
19 
20     return 0;
21 }

输出:

0
0
4196736

 分析:

可以参考https://www.zhihu.com/question/35843839

需要注意的是下列两行代码的区别

1 A a;
2 A a();

前者新建一个对象,后者声明了一个函数。

推荐阅读