-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 回答