# include <iostream>
using namespace std;
class Time
{
public:
Time(int h = 10, int m = 30, int s = 59):hour(h), minter(m), sex(s){};
//void out_value();
void out_value() const; //常成员函数可以引用非常对象和常对象的成员变量(如输出或者计算),但不能修改
void set_value(int, int, int);
//void Time::set_sex(int);
void Time::set_sex(int) const;
private:
int hour;
//conset int hour; //被定义为常数据成员,该变量只能通过参数初始化表初始化
//可以被常成员函数和普通成员函数引用,但不能被修改
int minter;
int sex;
//mutable int sex; //声明为mutable后的常对象中的成员变量可以被修改,但只能被常成员函数修改
};
int main(void)
{
//Time t1;
//int *p;
//t1.hour = 1;
//p = &t1.hour; //无法指向私有对象成员变量
//void (Time:: *p2)() = &Time::out_value; //定义时指定指向的对象
//(t1.*p2)(); //通过指向成员函数的指针调用函数
//Time const t2(12, 34, 46); //定义常对象时必须同时初始化,
//只保证其数据成员是常数据成员,且不能调用它的普通成员函数
//或者const Time t2(12, 34, 46);
//t2.set_value(10, 10 ,10); //error,常对象的成员变量不能被修改
//t2.set_sex(59); //正确,sex声明为mutable,可以被常成员函数修改
//t2.out_value(); //不能通过常对象调用它的普通成员函数,只能调用它的常成员函数
return 0;
}
/*
void Time::set_value(int h, int m, int s)
{
hour = h;
this->hour = h;
(*this).hour = h;
minter = m;
sex = s;
}*/
void Time::out_value() const
{
cout << hour << ":" << minter << ":" << sex << endl;
}
void Time::set_sex(int s) const
{
//sex = s;
}
相关推荐
Vivado安装教程:多版本共存的配置技巧
详解Vivado安装教程中的多版本共存配置技巧,帮助用户在同一系统中管理不同版本的Vivado开发环境,提升开发效率与兼容性,适用于需要切换版本的FPGA开发者。
有关C++中的常对象,常成员函数,常数据成员,常引用的认识
在基本数据类型中有常量,类比到类类型中就是常对象,其实常量也是常对象。 常对象的声明方式:const类名 对象名;。常对象的数据成员不能被改变,而且不能访问普通的函数成员,那常对象有何用?这就提出了常函数成员。 类的常函数成员的声明方式:类型说明符 函数名(形参)const;。常函数成员就是为常对象服务的,常对象只能访问常函数成员。但是普通对象也可以访问常成员函数,在访问过程中,普通对象会被视
AD9371 官方例程构建及单音信号收发
项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。
常对象、常数据成员、常成员函数
C++有不少措施保护数据的安全性,如private保护类的数据成员等。 但对于一些共用的数据,如函数实参与形参等,我们可以在不同的场合通过不同的途径访问同一个数据对象。有时不经意的误操作会改变数据的值,而这是人们所不希望出现的。 ►既要使数据能在函数间共享,又要保证它不被任意修改,可以使用 const限定,即把数据定义为只读的。 1. 常对象 常对象中的数据成员均是const的,因此必须要有初值。无论什么情况下,常对象中的数据成员都不能被修改。 除了合成的默认构造函数和默认析构函数外,也不能调用
Pytorch(一) Pytorch 的安装
安装步骤 1.检查是否有合适的GPU, 若有安装Cuda与CuDNN 2.下载pytorch安装文件,进行pytorch的安装 检查电脑是否有合适的GPU 在桌面上右击如果能找到NVIDA控制面板,则说明该电脑有GPU。控制面板如下,并通过查看系统信息获取支持的Cuda版本 点击 帮助->点击 系统信息 弹出下面的对话框,在驱动程序版本那一栏就能看到该计算机使用的驱动版本。 ...
Qt开发实战:QWebEngineView缓存路径详解与自定义配置(Windows/Linux)
本文详细解析了Qt框架中QWebEngineView组件的缓存机制,提供了Windows和Linux系统下的默认缓存路径及自定义配置方案。通过实战代码示例,展示了如何实现跨平台缓存路径管理、权限设置以及企业级应用中的多用户隔离策略,帮助开发者有效管理Web内容缓存,提升应用性能和数据安全性。
C++类的常数据成员和常成员函数
一、常数据成员 1、定义 用const修饰的数据成员 const int hour;//定义const为常数据成员 2、初始化 不能采用在构造函数中对常数据成员进行赋初值的方法,因为常数据成员是不能被赋值的。 构造函数只能用参数初始化列表对常数据成员进行初始化 Time ::Time (int h):hour(h){}//通过参数初始化表对常数据成员进行初始化 3、访问规则 普通成员函数...
泰凌微8258入门教程 基础篇①——Bluetooth® SIG Mesh 快速上手
Bluetooth® SIG Mesh Quick Start
常数据成员、常成员函数
定义常数据成员: 类型 const 对象名;或者 const 类型 对象名; 例如:const clock c1(9,9,9)或者: clock const c2(10,10,10); 常对象的几条特殊规则: 1、常对象,不能被赋值。 2、常对象,不能访问非常成员函数。 3、常对象,不能被更新。 4、常数据成员,只能通过初始化列表来获得初值。 什么时候用常对象? 1、函数返回值,2、函数形参(常引用) 常成员函数 1、常成员函数,不能修改(更新)对象数据成员的值。 2、常成员函数,不能调用该类中没有用con
ABAP 后台作业里的消息机制:把 MESSAGE 写对,避免作业莫名取消
SAP后台作业消息处理机制解析 本文深入剖析了SAP系统中后台作业的消息处理机制,揭示了前台与后台执行环境的关键差异。核心发现包括: 后台作业对消息的处理规则: 所有消息写入Job log而不显示 根据消息类型决定是否继续执行 W警告在列表处理阶段会被自动转为E错误 关键异常处理: 通过error_message可捕获E/A类型消息 A类型消息会触发隐式数据库回滚 未被捕获的E/A消息将导致作业中断 实用解决方案: 将业务提示改为S或I类型 使用DISPLAY LIKE保持前台体验 通过error_mess
Qt c++ llama.cpp 运行 LLaMA-3-8B 中文对话机器人(多模态输入)
助手:
常数据成员和常成员函数
常数据成员 引言:类存在的目的之一就是为了实现封装性,但是实际上经常使用公有函数接口去修改其数据成员,为了保证类中可以有一些数据成员绝对不会被修改,所以创造了常数据成员 特点: 1.在定义时要在头部加const关键字 2.初始化操作只能在构造函数的初始化列表中进行 3.无论是普通成员函数还是常成员函数都无法修改其值 常成员函数 引言:为了实现这样一种函数:对于其调用的数据成员只能读取,而不能修改。...
华为OD面试手撕真题 【合并相邻且相等的元素】多语言题解
华为OD面试高频手撕真题【合并相邻且相等的元素】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。
【C++】 常对象、常数据成员、常成员函数总结
常数据成员 ◆ 常数据成员必须进行初始化,并且不能被更新。 ◆ 常数据成员不能在声明时赋初始值(普通数据成员也是),常数据成员必须在构造函数初始化列表进行初始化;普通数据成员在初始化列表和函数体中初始化均可。 ◆ PS:类的成员对象若要传入参数初始化,则必须在构造函数初始化列表进行;(成员对象:当一个类的成员是另一个类的对象时,这个对象就叫成员对象。) 常对象 ◆ ⭐常对象可以调用常成员函...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
C++ 常数据成员、常成员函数和常对象
首先给出一个例子简单理解const修饰数据变量的基本工作原理: #include <stdio.h> int main() { const int a = 250; int *ptr = (int *)&a; *ptr = 360; printf("*ptr = %d\n",*ptr); printf("ptr = %p\n",ptr); printf("...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
C++ 常对象、常数据成员、常成员函数总结
常数据成员 常数据成员必须使用初始化列表初始化来初始化,并且不能被更新 常数据成员必须初始化 PS:类的数据成员使用初始化列表进行的初始化 才叫初始化,使用构造函数内部的语句初始化叫赋值 常对象 常对象可以调用常成员函数,不能调用非const成员函数;非const对象,可以调用普通成员函数和常成员函数 常对象成员函数不一定都是常成员函数,常对象的数据成员不一定都是数据成员 常对象一旦初始化,常对象的数据成员便不可允许修改 如果非要修改某个成员变量的话, PS:定义常对象有两种方法 1. .
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
常引用,常对象,常成员函数,常数据成员~
①常引用 形式—— const 类型 &对象名或变量名 ②常对象 形式——const 类名 对象名 1.常对象的数据成员不能被修改了,在定义的时候应该对其进行初始化 2.常对象不能够调用普通成员函数——因为普通成员函数可能会修改对象的数据类型,这是不安全的。 3.常对象可以调用静态成员函数,常成员函数,其实也可以调友元函数 (但是这里不对每一个具体展开了,就只是为了更加明白常对象是不
类中的常对象,常数据成员,常成员函数,常指针,常引用
均为保护数据信息,不允许修改某些部分 常对象 const 类名 对象名(实参列表) 类名 const 对象名(实参列表) 以上两种均可定义(声明同时一定要初始化) 定义后其中的成员值均不能被修改 且常对象不能调用普通成员函数(只能调用后加const的常函数) 常成员函数 int area() const { } 1、声明和定义都要写const(关键词const在后面)其他和普通函数定义声明无区...
【学习笔记】C++ 常对象、常数据成员、常成员函数总结
常数据成员 常数据成员必须使用初始化列表初始化来初始化,并且不能被更新 常数据成员必须初始化 PS:类的数据成员使用初始化列表进行的初始化 才叫初始化,使用构造函数内部的语句初始化叫赋值 常对象 常对象可以调用常成员函数,不能调用非const成员函数;非const对象,可以调用普通成员函数和常成员函数 常对象成员函数不一定都是常成员函数,常对象的数据成员不一定都是数据成员 常对象一旦初始化,常对象的数据成员便不可允许修改 如果非要修改某个成员变量的话,声明为mutable PS:定义常对.
C++ 之常量const(常对象、常数据成员、常成员函数)
常量的介绍 如果数据能在一定范围内共享,又希望他不被任意更改,可以使用const,把有关数据定义为常量;常量具有**只读**特性。 常对象 定义常对象形式: 注意:使用const声明常对象时,声明的同时必须进行初始化; //第一种 类名 const 对象名[(实参列表)] //第二种 const 类名 对象名[(实参列表)] 例1 Cdata const d1(2001, 5, 1); //定义常对象d1 常数据成员 使用const关键字进行说明的数据成员称为常数据成员。常数据成员初始
C++常数据成员,常成员函数及常对象的使用
一、常数据成员不可修改,声明方式:const 【类型】【标识符】 二、常成员函数可以和同名的非常成员函数发生重载,且声明和定义时都要带上const,调用时不需要,声明方式:【类型】【函数名】(参数列表)const 三、常对象的所有数据成员都是常数据成员,不可修改,且常对象只能调用常成员函数,不能调用非常成员函数,声明方式:1、【类名】const【对象名】 ;2、const【类名】【对象名】 程序示例: #include<iostream>//常对象,常成员函数,常数据成员 #inclu
C++ 常对象和常成员函数
常对象:不能修改的对象。“只读”。使用const声明,声明时必须初始化。 格式: const 类名 对象名 (初始化列表) 类名 const 对象名 (初始化列表) const Point p(100,200); 常成员函数 只能访问数据成员而不能设置或修改数据成员。 返回类型 函数名 (形参表)const; const成员函数只能调用c
C++中的常引用、常对象、常函数、常数据成员
1.常引用 用const声明的引用就是常引用。常引用所引用的对象不能被更改。经常见到的是常引用作为函数的形参,这样不会发生对实参的误修改。常引用的声明形式为:const 类型说明符 &引用名。常引用作为函数形参的例子如下: #include "iostream" using namespace std; // 常引用作为函数形参,保证了不会对实参的值进行误修改...
类的常数据成员、常成员函数、常对象、常指针/引用
常成员 类的常成员分为常数据成员和常成员函数。“常”代表“只读”,也就是说一旦确立,一般情况下不会被改变。 常数据成员 常数据成员是只读变量,只能读取,不能修改。对于每个对象,常数据成员都是不可变的,但不同对象的常数据成员可以不同。在对其进行初始化的时候,要用到构造函数的初始化列表,而不能像其他变量一样,直接在构造函数内初始化。初始化列表在构造函数的()和{}之间,格式为:变量名(值) class Date{ private: const int c; int b; public:
常引用、常对象和对象的常成员
常引用 用const声明的引用就是常引用。常引用所引用的对象不能被更改。我们经常见到的是常引用作为函数的形参,这样不会发生对实参的误修改。 常引用的声明形式为:const 类型说明符 &引用名。给大家看个常引用作为函数形参的例子: #include<iostream> using namespace std; void show(const double& r); int main() { double d(9.5); how(d); return 0;
c++修改类成员变量的值_C++日志(十五)共享数据的保护——常对象、常成员和常引用...
如果某些数据需要被共享,却又不想其值被改变,此时可以声明为“常量”,从而实现安全的保护。下面记录三种基本的常量:常对象、常成员和常引用。 首先,必须区分“初始化”和“赋值”两个概念。初始化指定义变量或者常量时指定其初值,而赋值是指定义变量或者常量后修改其值,不能混淆二者的概念。1、常对象 针对常对象,要求其数据成员在对象的生存期中不能改变。所以,要求常对象必须进行初始...
1775



被折叠的 条评论
为什么被折叠?



