之前这个问题困了我一早上,一直没编译过去
原来的代码是这样的
class A
{
public:
int m_var;
A();
~A();
void operator=(A& a)
};
void A::A()
{
m_var = 0;
}
//使用
std::vector<A> g_va;
g_va.push_back( A ); // c2679
这样编译会有error c2679
找了很久,原因在于构造函数,编译器在编译时不知道给g_Va这个vector里的A这个构造函数分配多少内存,故出现c2679"="错误
解决这个把构造函数里的初始化代码(m_var = 0)注释掉就可以了 ,如果一定要使初始化某些变量可以定义个初始化的成员调用
这里我还是不知道怎样才能按这样的写法编译过去,不知道是不是没有办法在vector里使用在构造函数里初始化的类,如果有人知道请告知