静态成员类内初始化方法及示例代码如何实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1096个文字,预计阅读时间需要5分钟。
C++ 静态成员初始化详解及实例代码
一般来说,关于C++类静态成员的初始化,可能会让人感到难以理解。但是,如果提到类内静态成员初始化,可能会更加清晰。以下是一些示例代码:
C++ 静态成员的类内初始化详解及实例代码
一般来说,关于C++类静态成员的初始化,并不会让人感到难以理解,但是提到C++ 静态成员的"类内初始化"那就容易迷糊了。
我们来看如下代码:
//example.h #include<iostream> #include<vector> using namespace std; class Example{ public: static double rate = 6.5; static const int vecSize = 20; static vector<double> vec(vecSize); }; //example.cpp #include "example.h" double Example::rate; vector<double> Example::vec;
我们需要判断上面的静态数据成员的声明和定义有没有错误,并解释原因。
首先,要谨记:通常情况下,不应该在类内部初始化成员,无论是否为静态成员。
其次,若一定要在类内初始化静态成员,那么就必须满足如下条件才行:
1) 静态成员必须为字面值常量类型的constexpr。
所谓的字面值类型就是通常遇到的:算术类型,引用,指针等。字面值常量类型就是const型的算术类型,引用,指针等。
本文共计1096个文字,预计阅读时间需要5分钟。
C++ 静态成员初始化详解及实例代码
一般来说,关于C++类静态成员的初始化,可能会让人感到难以理解。但是,如果提到类内静态成员初始化,可能会更加清晰。以下是一些示例代码:
C++ 静态成员的类内初始化详解及实例代码
一般来说,关于C++类静态成员的初始化,并不会让人感到难以理解,但是提到C++ 静态成员的"类内初始化"那就容易迷糊了。
我们来看如下代码:
//example.h #include<iostream> #include<vector> using namespace std; class Example{ public: static double rate = 6.5; static const int vecSize = 20; static vector<double> vec(vecSize); }; //example.cpp #include "example.h" double Example::rate; vector<double> Example::vec;
我们需要判断上面的静态数据成员的声明和定义有没有错误,并解释原因。
首先,要谨记:通常情况下,不应该在类内部初始化成员,无论是否为静态成员。
其次,若一定要在类内初始化静态成员,那么就必须满足如下条件才行:
1) 静态成员必须为字面值常量类型的constexpr。
所谓的字面值类型就是通常遇到的:算术类型,引用,指针等。字面值常量类型就是const型的算术类型,引用,指针等。

