class MyClass { public: MyClass(int value) : constMemberVar(value) { // 注意:不能在这里修改constMemberVar的值 } private: const int constMemberVar; // 声明为const成员变量 }; 复制代码 在这个例子中,constMemberVar是一个const整数成员变量,它通过构造函数的初始化列表: constMemberVar(value)进行初...
const 数据类型 数据成员名; 被const修饰的成员则必须进行初始化,并且不能被更改,而初始化的方式则是在类的构造函数的初始化列表里进行的。 另外,有一个特殊情况,如果成员是static类型,即静态常数据成员,因为是静态的属性,初始化则需在类外进行初始化。下面我们把刚才讲的情况放到代码里来说明: 1 2 3 4 5 6...
debug.m_debugLevel=10;//编译出错:不能直接改变成员变量debug.SetDebugLevel(20);//编译出错:不能通过成员函数改变成员变量debug.PrintDebugLevel();//编译出错:不能调用非 const 成员函数debug.PrintDebugLevel_const();//正常return0; } 不能改变 const 类对象的任何成员变量,这一点比较好理解,因为 const ...
常成员函数: 类名::fun(形参) const 常数组: 类型说明符 const 数组名[大小] 常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名 首先提示的是:在常变量(const 类型说明符 变量名)、常引用(const 类型说明符 &引用名)、常对象(类名const 对象名)、 常数组(类型说明符 const 数组名[大小]...
const成员必须在定义的时候同时初始化,而不能在后续再进行赋值。结构体定义时初始化的方法为:struct type_name var_name = {value1, value2, ...};其中type_name为结构体类型名,var_name为结构体变量名。=后面的大括号中,是各个成员变量的初始化值,根据成员变量的定义顺序一一对应。在初始化...
在C/C++中,常见 const 用法有以下几种: 一、const 变量 const 变量指的是,此变量的值是只读的,不应该被改变。 如果我们在程序中试图修改 const 变量的值,在编译的时候,编译器将给出错误提示。 正因为 const 变量的值在给定以后不能改变,所以const 变量必须被初始化。(如果不初始化,之后还怎么赋值呢?)如果我...
const常量与类 在类内部定义的const常量,仅在该类的某个对象的生命周期内是恒定不变的,对于整个类而言却是可以改变的,也即该类的不同对象可以将该常量初始化为不同的值。 声明类时,其内部的const常量成员是不能被初始化的,比如以下代码是有问题的,声明类A时len的值并不能被初始化为50,而是一个不确定的值。
C/C++中const修饰符的用法总结如下:修饰变量:全局变量和局部变量:当const修饰变量时,无论是全局变量还是局部变量,其值在初始化后都不可被修改。这有助于提升代码的可读性和安全性。替代宏定义:在C++中,const全局变量可以替代宏定义,提供类型检查,增加代码的严谨性。修饰结构体和类成员:const成员...
1.直接初始化 直接初始化是最简单的初始化const常量结构体的方法,它直接在结构体声明中指定成员变量的值: ```c const struct point { int x; int y; } point1 = {10, 20}; ``` 这种方法只适用于结构体的所有成员变量都是常量的情况下。 2.使用初始化列表 初始化列表允许我们为const常量结构体的各个成...