C/C++ 知识点:类静态成员初始化
2023-12-20 14:57:19
一、C++类静态成员初始化
C++类静态成员包含静态成员方法与静态数据成员,下面主要介绍静态数据成员的初始化
1、类静态数据成员声明与定义
当数据成员被声明为
static
时,只会为类的所有对象保留一个数据副本。静态数据成员不是给定的类类型的对象的一部分。 因此,静态数据成员的声明不被视为一个定义。 在类范围中声明数据成员,但在文件范围内执行定义。 这些静态类成员具有外部链接,示例如下:
class Base
{
private:
// 在类内部声明静态数据成员
static int m_count;
static Base m_base;
public:
Base(){}
};
// 在类外部定义静态数据成员,分配内存
Base Base::m_base;
int Base::m_count = 10;
注意:在类外部定义静态数据成员时,不能使用
static
关键字,不然会报错。
2、静态数据成员的类内初始化
如果要在类内部初始化类静态成员,可以使用下面两种方法
- 使用inline在类内部初始化且分配内存(C++17)
- 只能给静态成员提供const类型的类内初始值
class Base
{
private:
// 在类内部初始化static const成员
static const int MAX_NUM = 20;
public:
Base(){}
};
文章来源:https://blog.csdn.net/cloud323/article/details/135071763
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!