c++类里面添加类的静态成员指针变量如何初始化
2个回答
展开全部
假设一个类的名字叫Person
class Person
{
private:
static Person*p; //这个就是类里面的静态指针变量
};
那么,在类外指针的初始化,有两种,要么指向一块内存空间,要么是空指针,初始化可以这样写
Person* Person :: q = new Person; //这个就是类外面初始化。
或者
Person* Person :: q=NULL;
参看如下代码:
#include<iostream>
using namespace std;
class Person
{
public:
Person()
{
cout << "默认构造函数" << endl;
}
public:
static int m_A; //静态 int型变量声明
static int* q; //静态 int型指针变量声明
static Person*p; //静态 "类"型指针变量声明
};
int Person::m_A = 10;
int*Person::q = new int;
//或者int*Person::q=NULL
Person*Person::p = new Person;
//或者 Person*Person::p=NULL;
//总结:在类外初始化,去掉static,记得带上数据类型,后面跟上类名::
void test01()
{
Person::q;
}
int main(void)
{
cout << "main函数" << endl; //构造函数先于主函数运行。
test01();
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询