-7
class Cat
{
  public:
    int name;
    Cat();
    int getName();
}

私が持っている場合:

Cat* pointer = new Cat();
pointer->getName();
pointer->name; //this doesn't work

では、どうすればデータメンバーにアクセスできますか:名前?

4

1 に答える 1

3

それはうまく機能します:http://ideone.com/3E5Uec

#include <iostream>
using std::cout; using std::endl;

class Cat
{
  public:
    int name;
    Cat() : name(0) { }
    int getName() { return name; }
};

int main()
{
    Cat* pointer = new Cat();
    pointer->name = 42;
    cout << "getName: " << pointer->getName() << endl;
    cout << "name: " << pointer->name << endl;
    delete pointer;
}

あなたが提供したコードはコンパイルされなかったので、あなたが提供したコードにいくつかの追加をしなければならなかったことに注意してください:

  • 不足している#includeディレクティブを追加しました
  • Cat :: Cat()とCat :: getName()の定義を追加しました
  • ;クラス定義の後に不足しているものを追加しました
  • 私はあなたのコードをmain()でラップし、pointer->nameそれが機能したことを確認するためにの結果を出力しました
于 2013-02-07T21:23:59.103 に答える