• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++中的常对象与常对象成员详解

C++中的常对象与常对象成员详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++面向对象程序设计,c++类与对象,c++实例化对象,深度探索c++对象模型,c++面向对象等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

常对象

常对象必须在定义对象时就指定对象为常对象。

常对象中的数据成员为常变量且必须要有初始值,如

定义常对象的一般形式为

类名    const    对象名(实参列表);

也可以把const写在最左面

const    类名    对象名(实参列表);

二者等价

如果一个对象被声明为常对象,则不能调用该对象的非const型的成员函数(除了由系统自动调用的隐式构造函数和析构函数)。

否则就会报错

这样做是为了方式非const型的成员函数修改常对象中的数据成员的值,因为const型的成员函数是不可以修改对象中的数据成员的值的(这个后面还会说到)。

那么,怎样才能引用常变量中的数据成员呢?很简单,我们只需要将该成员函数声明称const型的成员函数(常成员函数)即可。

有时在编程时有要求,一定要修改常对象成员中的某个数据成员的值(例如类中有一个用于计数的变量count,其值应当不能变化),

对该数据成员声明为mutable,如

=========================一个简单的示例程序1.1====================================

1.常数据成员
其作用和用法与一般常变量相似,用关键字const来声明常数据成员。常数据成员的值是不能改变的。
只能通过构造函数的参数初始化表对常数据成员进行初始化。

在类体中声明常数据成员

2.常成员函数

如果将成员函数声明为常成员函数,则只能引用本类中的数据成员,而不能修改它们。
注意:常对象只能引用常成员函数

常成员函数的定义形式:

常成员函数可以const数据成员,也可以引用非const数据成员,但是都不能修改他们;

不是常成员函数的函数可以调用const数据成员,但是不能修改它们,也可以调用非const数据成员,并且可以修改它们。

具体情况,如图1:

还要注意一下三点:
1.不要误认为常对象中的成员函数都是常成员函数,常对象只保证其所有数据成员的值不被修改。

2.如果在常对象中的成员函数未加const声明,则编译系统会把它当最非const成员函数处理。

3.还要注意,常成员函数不能调用另外一个非cosnt成员函数。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 用C++面向对象的方式动态加载so的方法
  • C++对象内存分布详解(包括字节对齐和虚函数表)
  • 如何应用C++的函数对象
  • C++中的常对象与常对象成员详解
  • C++对象的动态建立与释放详解
  • C++临时性对象的生命周期详细解析
  • 深入c++中临时对象的析构时机的详解
  • 解析c++中参数对象与局部对象的析构顺序的详解

相关文章

  • 2017-05-28C++回溯法实例分析
  • 2022-04-30C语言fgetc和fputc函数用法详解(以字符形式读写文件)
  • 2017-05-28浅析C++中cout的运行机制
  • 2017-05-28c++ map,mutimap删除问题分析
  • 2017-05-28深入理解数组指针与指针数组的区别
  • 2017-05-28c++版线程池和任务池示例
  • 2017-05-28C++中new与delete、malloc与free应用分析
  • 2017-05-28c语言:基于函数指针的两个示例分析
  • 2017-05-28C++之类的静态变量
  • 2017-05-28C++实现简单的HTTP服务器

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c/c++中变量的声明和定义深入解析
    • C++ 类中有虚函数(虚函数表)时 内存分布详解
    • 使用VC++实现打印乘法口诀表
    • 关于C语言程序的内存分配的入门知识学习
    • 使用C++描绘心形
    • C++直接初始化与复制初始化的区别深入解析
    • 解析C/C++中如何终止线程的运行
    • C++使用ADO实现存取图片的方法
    • c++冒泡排序示例分享
    • VC++实现文件与应用程序关联的方法(注册表修改)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有