• 主页
  • 如何为具有自引用指针的类实现复制构造函数/赋值运算符?

如何为具有自引用指针的类实现复制构造函数/赋值运算符?

我不太确定是否可以实现一个复制构造函数/赋值运算符,这样如果我想让这个类等于另一个包实例,它就会用那个实例替换它自己。

我已经尝试了通用的赋值运算符实现(检查自引用等)。

template <typename T>
class bags {
public:
  bags(const bag<T>& b) {

  }

  bags<T>& operator=(bags<T> const &b) {

  }

  private:
  bags<T> * self;
}

template <typename T>
class apples : public bags<T> {
public:
  void test () {
    self = new bags<T>; // this will invoke assignment operator
  }

private:
  bags<T> * self;
}

Bags是apples (派生)的基类。我希望能够有自己的袋子和苹果。

转载请注明出处:http://www.jxbyjx.net/article/20230502/1133702.html