C++中,可以在不建立对象的情况下调用类成员吗?

静态成员似乎可以,那非静态成员呢?

如类A 定义

然后 int main ()
{
A:: n++// n是类中的静态成员

A::t++ // t是类中普通成员能,能这样写吗

}

静态的成员变量和函数存在全局段,整个程序只有一份,所以可以直接用类名来引用。
非静态的是没有空间的,只有实例化一个对象的时候才会有空间,所以不能用类名来引用,只能用对象来引用。

举个例子:
class A {
public:
int x;
static int y;

};

A a, b;
a.x = 10;
b.x = 20;
如果你用类来引用x, A::x那编译器怎么知道你要用哪个x啊,对象a也有,b也有,还可能更多。一个对象一份。当然要用对象来引用啦,a.x, b.x这样才对,明白了吗?
静态的不同,不管你有多少个对象, y只有一份,存在静态区,a.y, b.y都是同一个变量。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
非静态成员不能,非静态成员是随着对象存在而产生的,没有对象也就不会存在非静态成员,静态的可以,类名::成员名方式访问。
第2个回答  2013-06-28
静态的可以,非静态的不可以。追问

你确定?

相似回答