error C2512: 没有合适的默认构造函数可用

下面这段代码运行会出错,说是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*吧?强制转换下
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-01
添加pc类的默认构造函数
class pc
{
......
pc() {
p = NULL;

}
....
};本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网