想象一下,我们有以下课程:
class A
{
private:
static int m_a;
public:
A() {}
static int get_sum(int b);
};
int A::m_a = 5;
int A::get_sum(int b)
{
return m_a + b;
}
int main() {
// your code goes here
A a;
int c = a.get_sum(10);
cout << "C=: " << c << endl;
return 0;
}
在上面的代码中,我们有一个类,它包含一个私有的静态成员变量,它调用我们的公共静态成员函数get_sum()。现在的问题是:没有“this”指针的函数如何访问类成员变量m_a?在利普曼的书中,我读过:
(( Point3d* ) 0 )->object_count();
其中
object_count()
只会返回_object_count
静态数据成员。这个成语是如何演变的? ..............................
..............................
//呼叫的内部转换
object_count(( Point3d* ) 0 );
语言解决方案是引入静态成员函数 在官方cfront版本2.0中。的主要特征 一个静态成员函数是它没有
this
指针。
我不明白我们如何将0转换为类类型对象?
答案 0 :(得分:0)
静态成员函数没有此指针,静态数据成员是特定于类的,而不是特定于对象的。因此,静态成员函数可以访问静态成员变量。