下面这段代码运行会出错,说是error C2512: “pc::pc”: 没有合适的默认构造函数可用。求改正,我用的VS2010
#include "stdafx.h"
#include <string>
#include <map>
using namespace std;
struct node
{
string data;
node *next;
};
class pc
{
public:
node *p;
pc(string x)
{
p=new node;
p->data=x;
};
};
map<string,class pc> obj;
void main()
{
pc C("C");
pc D("D");
obj["C"] = C;
obj["D"] = D;
}
你需实现拷贝构造和 重载赋值运算符
pc::pc(const pc& rSrc)
map<string,class pc> obj; obj["C"] 不知道会不会会初始个对象,自己测测,看看给需要默认无参构造
不应该是 ""当成CHAR*吧?强制转换下
pc::pc(const pc& rSrc)
map<string,class pc> obj; obj["C"] 不知道会不会会初始个对象,自己测测,看看给需要默认无参构造
不应该是 ""当成CHAR*吧?强制转换下
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-07-01
添加pc类的默认构造函数
class pc
{
......
pc() {
p = NULL;
}
....
};本回答被提问者采纳
class pc
{
......
pc() {
p = NULL;
}
....
};本回答被提问者采纳