0

我是一名学生,我在理解面向对象编程 (OOP) 中的单个成员指针的概念时遇到了问题,我在 Google 上搜索了很多但没有得到这个想法!

你能帮我详细了解一下吗?

4

1 回答 1

-1

因此,在从评论中进一步澄清之后,您似乎想知道类中的指针成员,如下所示:

class Foo
{
public:
  int* a;
};

现在类中的指针与普通变量基本相同,但是由于您在这里处理内存,因此您将增加 3 件事情(三规则):

  1. 析构函数
  2. 复制构造函数
  3. 超载operator=

我不会在这里详细介绍,但它应该看起来像这样:

class Foo
{
private:
  int a*;

public:
  ~Foo() // destructor
  {
    delete a;
  }

  Foo(const Foo& cpy) // copy constructor
    : a(cpy.a) {}

  Foo& operator=(const Foo& cpy) // assignment
  {
    a = copy.a;
  }
};

在继续将指针作为类中的属性之前,请先了解这三个规则,称为“三规则”。

每当您发现自己在类中使用指针时,您都需要实施三法则。

希望这可以帮助 :)

于 2020-07-06T03:43:34.510 回答