0

私は学生で、オブジェクト指向プログラミング (OOP) の単一メンバー ポインターの概念を理解するという問題に直面しました。Google でよく検索しましたが、アイデアがわかりませんでした。

詳細を理解するのを手伝ってもらえますか?

4

1 に答える 1

-1

したがって、コメントからさらに明確にした後、次のように、クラス内のポインター メンバーについて疑問に思っているようです。

class Foo
{
public:
  int* a;
};

クラスのポインターは基本的に通常の変数と同じですが、ここではメモリを扱っているため、3 つの追加事項 ( Rule of Three ) になります。

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

クラスの属性としてポインターを使用する前に、3 つのルールと呼ばれるこれら 3 つについて学んでください。

また、クラス内でポインターを使用していることに気付いたときはいつでも、3 つのルールを実装する必要があります。

お役に立てれば :)

于 2020-07-06T03:43:34.510 に答える