令人傻眼的错误:无法解析的外部符号undefined reference to...

令人傻眼的错误(undefined reference to `CMystring::CMystring(char*)’)错误的

定义对象时CMystring cm1=CMystring(&a[0]);出现这个错误
在Visual Studio中出现如下错误无法解析的外部符号 "public: __thiscall CMystring::CMystring(char *)" (??0CMystring@@QAE@PAD@Z),该符号在函数 _main 中被引用
这就监介了!

class CMystring{
  char *m_pdata;
public:
  CMystring(const CMystring &str);
  CMystring(char *p_data=NULL);
    // m_pdata=p_data;
  
  ~CMystring();
  //CMystring& operator=(const CMystring &str);
  friend ostream& operator<<(ostream &os,const CMystring &str);
};

ostream& operator<<(ostream &os,const CMystring &str){
  os<<str.m_pdata;
  return os;
}

int main()
{
  string a="yan";
  CMystring cm1=CMystring(&a[0]);
  cout<<cm1<<endl;
  return 0;
}

原因是构造函数调用错误,没有对数据成员赋值。
增加一条m_pdata=p_data;成功解决问题
peace

你可能感兴趣的:(c++)