class A
{
public:
A(int a , int b ){a1=a;a2=b;}
private:
int a1, a2;
};
class B
{
public:
vector<A> array;
B()
{
array.resize(5);
}
};
如上所示的代码中,我的系统中编译会报错“c:/program files/microsoft visual studio/vc98/include/vector(108) : error C2512: 'A::A' : no appropriate default constructor available”。这个错误是说array.resize(5);会调用A的构造函数,而A类里没有默认构造函数,显然就会报错啦。
修改方法就是给A一个默认构造函数,可以这么写 A(int a = 0 , int b = 0 ){a1=a;a2=b;} 问题就可以搞定。
PS:这个问题是在我遇到好几次了,今天刚开博,就此记录,哈哈