【发布时间】:2013-03-17 19:52:36
【问题描述】:
是否可以访问类外的非静态数据成员?假设您有如下示例。我知道作为示例没有多大意义,但我只想了解如何访问非静态数据成员。如果编译以下内容会产生错误:
C.h|70|error: invalid use of non-static data member ‘C::age’|
//C.h
class C{
public:
int age;
};
int getAge();
//C.cpp
C::C()
{
age = 0;
}
int getAge(){
return (C::age);
}
【问题讨论】:
-
int C::getAge()可能会更好。在类中移动 getter。 -
类的重点是每个实例都是独立的。您要返回哪个实例的
age? -
@WhozCraig 我知道,我知道。假设我需要该类之外的该功能。有没有办法解决我的错误?
-
@chris C 类年龄的实例
-
@FranXh,您必须意识到这毫无意义。您可以创建任何不同的 C 对象,每个对象都有自己的
age。如果您想要一个age用于所有实例(或从无实例访问),您必须将age设为静态。
标签: c++ non-static datamember data-members