错误C2582:'operator ='功能不可用

时间:2013-08-27 01:59:31

标签: c++ compiler-errors

我有一个班级,

class Points
{
 public:
 Points();
}

和另一个,

class OtherPoints : public Points
{
 public:
 OtherPoints ();

 Points myPoints;
}

现在在OtherPoints()构造函数中,我正在尝试创建一个Point变量,

OtherPoints::OtherPoints(){ 
    myPoints=Points();
}

并得到错误,

  

错误C2582:'运营商='功能在'积分'中不可用

2 个答案:

答案 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;
 }

输出是,

  

名为

的构造函数点      

名为

的构造函数点      

构造函数其他点称为

     

名为

的构造函数点      

析构函数点称为

     

析构函数其他点称为

     

析构函数点称为

     

析构函数点称为

我没有得到任何分配错误。

注意:每当你做继承时,将基类析构函数设为虚拟。