Sir*_*lot 0 c++ copy-constructor
例如,您的构造函数可能如下所示:
myClass::myClass(Mesh &mesh) : baseClass(mesh)
{
pointer = new Thing(mesh);
}
Run Code Online (Sandbox Code Playgroud)
mesh没有保存在myClass中,也没有在baseClass中保存的网格的getter.这只是必须在基类中实现getter的情况吗?
例如,你不能这样做:
myClass::myClass(const myClass& original) : baseClass(mesh) //there is no mesh
{
pointer = new Thing(mesh); //mesh is no longer in the parameter list
}
Run Code Online (Sandbox Code Playgroud)
编译器在为这些类创建默认复制构造函数时如何制作此副本?或者这是一个需要复制构造函数的情况?网格不是大脑的私人成员,并且没有吸气剂,所以我们如何制作新的东西?
编辑 - 通过添加更新问题 Thing
mesh必须在baseClass复制构造函数中复制.
class baseClass
{
Mesh myMesh;
public:
baseClass(const baseClass &other) : myMesh(other.myMesh) {} // <--- copy Mesh
};
class myClass : public baseClass
{
public:
myClass(const myClass& other) : baseClass(other) {} // <--- simply pass
};
Run Code Online (Sandbox Code Playgroud)