假定用户为类AB定义了一个构造函数“AB():a(0),b(0){}”,类AB中的成员为int a和int b。则创建该类对象的语句“AB x();”为什么是错误的?
假定用户为类AB定义了一个构造函数“AB():a(0),b(0){}”,类AB中的成员为int a和int b。则创建该类对象的语句“AB x();”为什么是错误的?
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
对于无参构造的类,定义时需要用 AB x; 的方式来声明,这是C++的规定。
而 AB x() 的用法在编译的时候 vc 会报一个警告
这是因为编译器无法理解你写的是类实例化还是一个函数声明,假设你后面还有一个函数是
这就可能是一个提前的函数声明,所以这里编译器警告了你,并把这个写法当作了一个提前定义的函数声明,而没定义 c 实例。