复制构造函数错误c2039
Copy constructor error c2039
嗨,伙计们!我有一个让我头疼的代码。我想要一些帮助。这是我的.h文件。
#include <iostream>
#include <string>
using namespace std;
namespace UI{
class Comanda
{
private:
const string _nume;
public:
Comanda();
Comanda(const string &nume);
virtual ~Comanda();
const string& Nume() const;
virtual void AsteaptaEnter();
virtual void Execute();
};
};
和.cpp:
#include <iostream>
#include <string>
#include "Comanda.h"
#include "Exceptii.h"
using namespace std;
using namespace UI;
Comanda::Comanda()
{
cout << "Comanda()" << endl;
}
Comanda::Comanda(const string &nume)
{
_nume = nume._nume;
}
编译器显示了这个错误:
错误C2039:"_nume":不是"std::basic_string<"的成员_Elem,_Traits,_Ax>'
我该怎么办?提前感谢!
必须初始化ctor的初始值设定项列表中的常量成员,而且nume._nume
无效。
Comanda::Comanda(const string &nume) : _nume(nume) {}
^^^^^^^^^^^^^
你可能是指
Comanda::Comanda(const string &nume)
{
_nume = nume;
}
顺便说一下,它不是一个复制构造函数。
_nume=nume_nume;这是错误的
它应该是_nume=nume;
正如@Cornstrails正确指出的那样,由于_nume是const,在任何情况下都无法完成上述任务。
相关文章:
- 创建 OpenCV 非自由版本 v4.3 时出错,可折叠.cpp错误 C2039、2605
- 获取 C2039:"交换":不是成员错误,如何解决?
- C++ 错误 C2039 仅在发布时出现
- 我应该如何处理:错误 C2039 "分配":不是 Visual Studio 2017 中"cl::string"的成员?
- PCL - 错误 C2039:'PointType':不是 'boost::shared_ptr<T>' 的成员
- 错误 C2360: 错误 C2361: 错误 C2039:
- 在vs2010中使用iostream时,出现错误C2039:'exit':不是"全局命名空间"的成员
- Visual Studio 2012 错误 C2039: 'serialize': 不是 'std::shared_ptr<_Ty>' 的成员
- PCL - 错误 C2039:'setSize':不是 'pcl::visualization::PCLVisualizer' 的成员
- 什么是错误C2039,在这种情况下它意味着什么
- 错误 1 错误 C2039:'getIterator':不是"双重链接列表<Datatype>"的成员
- 错误: C2039: 'pointer': 不是 'QJsonObject::iterator' 的成员
- 复制构造函数错误c2039
- 如何解决错误C2039
- 错误 C2039:'exit'和错误 C2873:'exit'(突然无法编译)
- C2039:"E"不是错误的成员"Node"
- 端口项目 VS2003 -> VS2013 错误 C2039 序列化不是hash_Map的成员
- Python 的 Visual C++ 无法处理 c++11 错误 C2039:"data":不是 std::vector 的成员
- std::数组的重载 () 运算符给出:错误 C2039:'()':不是 'std::array<_Ty,_Size>' 的成员
- 错误 C2039:'serialize':不是矢量类型的成员