c++类里面添加类的静态成员指针变量如何初始化

c++类里面添加类的静态成员指针变量如何初始化,第1张

假设一个类的名字叫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

}

类的静态数据成员在 类内只能声明,定义和初始化必须在类外

可以这样

class a

{

int aa

static int aaa//静态数据成员声明

}

int a::aaa=10//静态数据成员的定义和初始化

static在c语言中是私有、静态意思。

用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。

私有就是隐藏。static函数只能声明后的本文中调用。static全局变量只能声明后的本文中调用。static局部变量只能声明后的本函数调用

静态就是一直存在,相对于每次调用动态分配而言。static函数未验证是否每次调用代码地址都是一致的。static全局变量生命周期到程序或进程结束。static局部变量生命周期到程序或进程结束。

static的使用和作用

静态全局变量。全局变量前加static,修饰全局变量为静态全局变量,改变全局变量的可见性。静态局部变量。局部变量前加static,修饰局部变量为静态局部变量,改变局部变量的销毁时期。静态函数。函数返回类型前加static,修饰函数为静态函数,改变函数的可见性。

类的静态成员。类成员前加static,修饰类的成员为类的静态成员,实现多个对象之间的数据共享,并且使用静态成员不会破坏封装性,也保证了安全性。类的静态函数,类函数前加static,修饰类的函数为静态函数,减少资源消耗,不需要实例化就可以使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11785722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存