c++ 类中const成员变量的赋值方法

 更新时间:2016年12月30日 09:08:33   投稿:jingxian  
下面小编就为大家带来一篇c++ 类中const成员变量的赋值方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在头文件的类的定义中定义了一个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成员变量的赋值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++实现LeetCode(26.有序数组中去除重复项)

    C++实现LeetCode(26.有序数组中去除重复项)

    这篇文章主要介绍了C++实现LeetCode(26.有序数组中去除重复项),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++ sleep()和usleep()的区别

    C++ sleep()和usleep()的区别

    本文主要介绍了C++ sleep()和usleep()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • opencv3/C++视频中叠加透明图片的实现

    opencv3/C++视频中叠加透明图片的实现

    今天小编就为大家分享一篇opencv3/C++视频中叠加透明图片的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • C语言三子棋的实现思路到过程详解

    C语言三子棋的实现思路到过程详解

    所谓三子棋,就是三行三列的棋盘,玩家可以和电脑下棋,率先连成三个的获胜。这篇文章主要为大家详细介绍了如何通过C语言实现三子棋小游戏,感兴趣的小伙伴可以尝试一下
    2023-02-02
  • C语言打印正方形实例代码

    C语言打印正方形实例代码

    大家好,本篇文章主要讲的是C语言打印正方形实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • C语言中的BYTE和char深入解析

    C语言中的BYTE和char深入解析

    在C语言中,字符(character)这个术语具有两个层次上的含义:书写源程序的字符和程序处理的字符
    2013-10-10
  • C++实现一个简单的SOAP客户端

    C++实现一个简单的SOAP客户端

    这篇文章主要介绍了C++实现一个简单的SOAP客户端,在C++中,一般使用gSOAP来实现客户端、服务端,下面一起进入文章了解具体内容,需要的朋友可以参考一下
    2021-11-11
  • C++移动语义详细介绍使用

    C++移动语义详细介绍使用

    首先,移动语义和完美转发这两个概念是在C++的模板编程的基础上,新增的特性,主要是配合模板来使用。本篇会从C++的值类型,到移动拷贝与移动赋值来理解移动语义与完美转发
    2023-01-01
  • C++ 迭代器失效问题解决

    C++ 迭代器失效问题解决

    在C++中,当一个vector进行了插入或删除操作时,其迭代器可能会失效,本文就来介绍一下C++ 迭代器失效问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • OpenCV + MFC实现简单人脸识别

    OpenCV + MFC实现简单人脸识别

    这篇文章主要为大家详细介绍了OpenCV + MFC实现简单人脸识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08

最新评论