我有一些产生错误的 C++ 代码:
class foo{
public:
int a;
int b;
};
foo test;
test.a=1; //error here
test.b=2;
int main()
{
//some code operating on object test
}
我收到这个错误:
error: expected constructor, destructor, or type conversion before '.' token
错误是什么意思,我该如何解决?
最佳答案
它被称为构造函数。包括一个将所需值作为参数的参数。
喜欢
class foo
{
public:
foo(int aa, int bb)
: a(aa), b(bb) // Initializer list, set the member variables
{}
private:
int a, b;
};
foo test(1, 2);
正如 chris 所指出的,如果字段是 public
,您也可以使用聚合初始化,就像在您的示例中一样:
foo test = { 1, 2 };
这在 C++11 兼容编译器中也适用于构造函数,如我的示例所示。
关于main 之外的 C++ 对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842215/