C++编译错误
不罗嗦了, 直接贴代码.
- C/C++ code
#include <iostream>using namespace std;class A {public: A(): a(3) {cout<<"constructor"<<endl;} //如果打印:"constructor", 则说明构造方法被调用 int a;};int main() { A b(); //这里是构建一个类A的实例, 结果没有成行; //构造方法也没有调用, 因为没有"constructor"打印出来.// b.a = 4; //编译错误: request for member 'a' in 'b', which is of non-class type 'A()' return 0;}[解决办法]
A b();
=>
b是一个函数,返回A的一个object
A b;就可以了。
[解决办法]
楼上正解
[解决办法]
[解决办法]
- C/C++ code
A b(); //表示一个函数签名。A b; // 才是定义。
[解决办法]
A b(); //这里是构建一个类A的实例, 结果没有成行;
编译器 语法分析发生二义性
即可解释为 返回A对象的 b 函数
又可解释为 A的对象b
此时根据c++标准,选择第一种解释。优先解释成声明
[解决办法]
类的实例语句有问题…
[解决办法]
[解决办法]
恩,写法有问题