我有一个班级,
class Points
{
public:
Points();
}
和另一个,
class OtherPoints : public Points
{
public:
OtherPoints ();
Points myPoints;
}
现在在OtherPoints()
构造函数中,我正在尝试创建一个Point
变量,
OtherPoints::OtherPoints(){
myPoints=Points();
}
并得到错误,
错误C2582:'运营商='功能在'积分'中不可用
答案 0 :(得分:2)
我认为不需要myPoints=Points();
;
Points myPoints; // This code has already called the constructor (Points();)
答案 1 :(得分:0)
这是我编译的代码,它的编译非常精细,
#include<iostream>
using namespace std;
class points{
public: points(){cout<<"constructor points called"<<endl;}
virtual ~points(){cout<<"destructor points called"<<endl;}
};
class otherpoints: public points{
points x1;
public: otherpoints(){cout<<"constructor otherpoints called"<<endl;x1=points();}
~otherpoints(){cout<<"destructor otherpoints called"<<endl;}
};
int main(int argc, char *argv[])
{
otherpoints y1=otherpoints();
return 0;
}
输出是,
名为
的构造函数点名为
的构造函数点构造函数其他点称为
名为
的构造函数点析构函数点称为
析构函数其他点称为
析构函数点称为
析构函数点称为
我没有得到任何分配错误。
注意:每当你做继承时,将基类析构函数设为虚拟。