C++中,如何访问类的静态成员!
发布网友
发布时间:2022-05-01 04:41
我来回答
共2个回答
热心网友
时间:2022-04-22 10:35
静态成员不论是共有的还是私有的,只能通过静态的成员函数才可以访问,也就是说,普通的成员方法不可以访问,如果想访问静态变量,只能通过静态函数,这么说你就懂了吧就像下面。
如果你定义了一个:
static
int
n;
那么就要相应的有一个static的函数,不论这个类的任何对象,都可以通过这个成员函数去访问,需要注意的是,静态成员变量是类本身的,不属于某个对象,也就是说,是所有对象共享的数据。在一个对象里改变了它的值,别的对象里也会改变。从内存的角度讲,静态成员变量和静态成员函数,所有对象都共享这块内存,不是生成一个对象就分配一块。
热心网友
时间:2022-04-22 11:53
1.静态成员函数中不能调用非静态成员。
2.非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。
3.静态成员变量使用前必须先初始化(如int
MyClass::m_nNumber
=
0;),否则会在linker时出错。
4.在类的非静态成员函数中使用类的静态成员
class
Point
{
public:
void
init()
{
output();
}
static
void
output()
{
}
};
void
main()
{
Pointpt;
pt.output();
}
5.使用类的静态成员变量
#include
class
Point
{
public:
Point()
{
m_nPointCount++;
}
~Point()
{
m_nPointCount--;
}
static
void
output()
{
printf("%d\n",
m_nPointCount);
}
private:
static
int
m_nPointCount;
};
int
Point::m_nPointCount
=
0;
void
main()
{
Pointpt;
pt.output();
}