注册 登录
编程论坛 C++教室

类的静态问题?

newyj 发布于 2008-03-23 21:51, 790 次点击
是不是 只有声明为静态的成员才分配内存
非静态成员函数能否调用静态数据成员
6 回复
#2
sunkaidong2008-03-23 22:06
“非静态成员函数能否调用静态数据成员”可以。。反过来却不行。。。。
#3
newyj2008-03-23 22:09
是不是 只有声明为静态的成员才分配内存
类中的一般成员则不分配内存
#4
sunkaidong2008-03-23 22:17
静态是不需要声明就有内存的。。类要实例才会开辟堆内存。。。因为静态成员只有一个地址。。所以可以通过非静态成员访问静态。。但是静态却不能访问类中非静态成员。。他只能访问实例对象。。如果一个静态函数访问了非静态的变量。。当这个类实例对象比较多时。。。会出现无法指代明确的问题。。。
#5
newyj2008-03-23 22:49
比如定义了一个 类 var 而 var又声明了多个对象 例如 a和b
在类中声明了 静态成员 也就是分配一个公共的内存来存储静态成员
而 非静态成员 分别为 a和b 分配内存  用a或b的类成员来可以调用公共的
而静态的(公共) 就不知道该对a和b哪个来做调用
不知道 我说的是否正确
#6
newyj2008-03-23 22:57
那是不是 类中的一个数据成员不需要被修改 只是需要调用的话 是不是 定义成静态的就可以了
这样也可以 节省 内存空间
#7
sunkaidong2008-03-23 22:59
不是。。最好 static const
1