在头文件的类的定义中定义了一个const成员变量c++ 规则:
1、类定义中不能进行初始化,因为头文件中类的定义只是一个声明,并没有分配真正空间,因此变量是不存在的,因此是不能赋值的。
2、const 定义的变量是不能赋值
这可如何是好,声明中不能赋值,声明完还不能赋值。又不能不赋值。
解决方案:
1、在构造函数后的参数初始化列表中初始化
2、将const变量同时声明为 static 类型进行初始化。
Eg:
#include <iostream> class CTestA { public: CTestA():m_iSIZE(20) // method 1 { } ~CTestA() { } int GetSize() { return m_iSIZE; } private: const int m_iSIZE; }; class CTestB { public: CTestB() { } ~CTestB() { } int GetSize() { return m_iSIZE; } private: static const int m_iSIZE; }; const int CTestB::m_iSIZE = 3; // method 2 int main() { CTestA oTestA; CTestB oTestB; std::cout<<"oTestA:"<<oTestA.GetSize()<<std::endl<<"oTestB:"<<oTestB.GetSize()<<std::endl; return 0; }
以上这篇c++ 类中const成员变量的赋值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
主要内容:const成员变量,const成员函数(常成员函数)在类中,如果你不希望某些数据被修改,可以使用 关键字加以限定。const 可以用来修饰成员变量和成员函数。 const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表,这点在前面已经讲到了,请猛击《 C++初始化列表》回顾。 const成员函数(常成员函数) con
主要内容:在类体中和类体外定义成员函数的区别类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的集合。 类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存。但是,在定义类的时候不能对成员变量赋值,因为类只是一种数据类型或者说是一种模板,本身不占用内存空间,而变量的值则需要内存来存储。 类的成员函数也和普通函数一样,都有返回值和参数列表,它与一般函数的区别是
- c - callback : rt_alarm channel : rt_pwm_configuration cleanup : rt_thread cleanup_func : rt_dlmodule close : rt_device_ops cmd_line : rt_dlmodule config : rt_serial_device , rt_spi_device configu
这里列出了所有文档化的结构体和联合体的成员变量,并附带结构或联合所属的文件: - c - callback : rt_alarm channel : rt_pwm_configuration cleanup : rt_thread cleanup_func : rt_dlmodule close : rt_device_ops cmd_line : rt_dlmodule config : rt_
我很难弄清楚如何使用适当的模板化参数调用setValue函数。在ParameterBase抽象基类中不可能有模板化的参数。非常感谢任何帮助。 附注。我没有使用boost::any的灵活性。
主要内容:几点说明 对象的内存中包含了成员变量,不同的对象占用不同的内存(已在《 C++对象的内存模型》中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。例如有两个相同类型的对象 a、b,它们都有一个成员变量 m_name,那么修改 a.m_name 的值不会影响 b.m_name 的值。 可是有时候我们希望在多个对象之间共享数据,对象 a 改变了某份数据后对象 b 可以检测到。共享数据的典型使