#include <iostream>
using namespace std;
class CMyclass
{
public:
CMyclass():x(0),y(x),m(9),tempString(""),vecValue(){};
~CMyclass(){};
private:
int x; //一般变量 (可在初始化列表中进行初始化)
int &y; //引用型变量 (【必须】在初始化列表中进行初始化)
const int m; //常量 (可在初始化列表中进行初始化)
const int m1 = 9; //可直接初始化
static int n; //静态变量必须在类外进行初始化
//static int n = 8; //error
static const int p;
static const int p1 = 7; //静态常量成员变量可直接初始化
static const double csd;
//static const double csd2 = 99.9; //error:只有静态常量【整型】数据成员才可以在类中初始化
string tempString;
vector<float> vecValue;
};
int CMyclass::n = 8; //right
//static int CMyclass::n = 8; //error ==>静态变量在类外初始化时必须应去掉前缀static
const int CMyclass::p = 7; //right
//static const int CMyclass::p = 7; //error ==>静态常量成员变量在类外初始化时必须应去掉前缀static
总结:所有的静态变量在类外初始化时,都要去掉前缀static
C++中一般变量、引用变量、常量、 静态变量、静态常量的初始化问题
最新推荐文章于 2022-06-14 12:36:49 发布