C++拷贝应拷贝所有部分

2019-05-27  本文已影响0人  b036101467d7

子类拷贝时,不应忘记父类部分,例:

class Test{
public:
    Test();
    ~Test();
    Test(const Test &test){
    }
    Test &operator=(const Test &test){
    }
private:
  int mTest;
};

class TestA : public Test {
public:
         TestA();
         ~TestA();
          TestA(const TestA &test);
          TestA &operator(const TestA &test);
private:
  int mTestA;
};

子类拷贝构造实现,注意其中的父类部分:

TestA::TestA(const TestA &test) : Test(test){
}

子类拷贝operator=操作符实现,注意其中的父类部分:

TestA &TestA::operator=(const TestA &test){
  Test::operator=(test);
  this.mTestA = test.mTestA;
  return *this;
}
上一篇 下一篇

猜你喜欢

热点阅读