C++ const对象
C++ 中,const 也可以用来修饰对象,称为常对象。一旦将对象定义为常对象之后,就只能调用类的 const 成员(包括 const 成员变量和 const 成员函数)了。
定义常对象的语法和定义常量的语法类似:
const class object(params);class const object(params);
定义 const 指针:
const class *p = new class(params);class const *p = new class(params);
class为类名,object为对象名,params为实参列表,p为指针名。两种方式定义出来的对象都是常对象。
一旦将对象定义为常对象之后,不管是哪种形式,该对象就只能访问被 const 修饰的成员了(包括 const 成员变量和 const 成员函数),因为非 const 成员可能会修改对象的数据(编译器也会这样假设),C++禁止这样做。
常对象使用举例:
#include <iostream>
using namespace std;class Student{public:Student(char *name, int age, float score);
public:void show();char *getname() const;int getage() const;float getscore() const;
private:char *m_name;int m_age;float m_score;
};Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){ }
void Student::show(){cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;
}
char * Student::getname() const{return m_name;
}
int Student::getage() const{return m_age;
}
float Student::getscore() const{return m_score;
}int main(){const Student stu("小明", 15, 90.6);//stu.show(); //errorcout<<stu.getname()<<"的年龄是"<<stu.getage()<<",成绩是"<<stu.getscore()<<endl;const Student *pstu = new Student("李磊", 16, 80.5);//pstu -> show(); //errorcout<<pstu->getname()<<"的年龄是"<<pstu->getage()<<",成绩是"<<pstu->getscore()<<endl;return 0;
}
stu、pstu 分别是常对象以及常对象指针,它们都只能调用 const 成员函数。
C++ const对象相关推荐
- const函数和const对象
const函数和const对象 const修饰函数时,表明该函数不能修改成员变量 const修饰对象时,表明该对象不能引用成员中非const的成员函数 #include <iostream> ...
- const对象,NULL和nullptr,C++中创建对象数组
1.定义成了const之后的类 #include <iostream> class area { public:int x;int y;mutable int z; //不受cons ...
- 动态分配的const对象
#include <iostream> #include <vector> #include <string> using namespace std;int ma ...
- const指针和指向const对象的指针
1.指向const对象的指针 C++强制要求指向const对象的指针也必须具有const特性. const double *ptr; 限定了ptr指针指向double类型const对象的, 即cons ...
- C++之指向const对象的指针和const指针
1.指向const对象的指针 我们可以通过指针来修改其所指对象的值,但如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针也是const类型. ...
- C++指向const对象的指针和const指针
1.指向const对象的指针 我们可以通过指针来修改其所指对象的值,但如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针也是const类型. ...
- 如何区分“指向const对象的指针”和“const指针”?
const是C++中引入的一个新的关键字,它为C++编程带来了很大的方便.指向const对象的指针和const指针是两个名字很接近的概念,对于初学者来说非常容易搞混,这里对它们进行区分. 指向cons ...
- const对象和头文件三例外
c++ 中 const对象默认是文件的局部变量 头文件用于声明而不是用于定义,但有三个例外. 1 定义const对象 2 定义inline函数 3 定义类 可以定义const对象是基于第一行的原因,包 ...
- const指针与指向const对象的指针
一. 指向const对象的指针: 定义形式:const double *cptr; const限定了指针指向的对象类型,指针本身不是const类型 特征: 1.不能通过指针改变const对象的值,但是 ...
- const对象不能调用非const成员函数
在C++中,可以用const来定义一个const对象,但const对象不可以调用类中的非const成员函数 原因 引发原因:: 由调用成员函数时隐式传入的当前对象的this指针引起. 非const成员 ...
最新文章
- STL priority_queue sort 自定义比较终极模板
- python代码壁纸-70行python代码实现壁纸批量下载
- ai钢笔工具怎么描线_AI钢笔工具技巧,怎么画出完美的贝塞尔曲线
- 那些常见的C++、Qt基础面试题
- 浏览器兼容_查成绩浏览器不兼容怎么办?
- Springboot 项目中 xml文件读取yml 配置文件
- Windows Phone Developer Registration 开发人员无法连接注册解决
- mysql jsp分页技术_一个非常简单的分页技术MYSQL JSP 利用了mysql的LIMIT参数
- python中惩罚的代码_如何只为在python中使用的实现支付依赖惩罚?
- Centos7安装NVIDIA的驱动的坑
- datatable java实现_在JAVA实现DataTable对象(一)
- 【消费量预测】基于matlab碳排放约束下煤炭消费量预测【含Matlab源码 223期】
- 概念模型向逻辑模型的转换规则
- java 检查 死链接_如何检查网站死链(网站死链接如何简易识别及处理)
- DiabloFX展示模板 joomla多用途二手房公司企业博客商业主题
- 用户体验五要素_【产品经理】如何理解“用户体验要素”5层模型?
- 张小龙:从FoxMail到WeChat
- 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道
- 资深前端老司机到底牛逼在哪?
- JavaScript聊天器
热门文章
- linux批量切割图片,MAC中用Shell脚本批量裁剪各种尺寸的App图标
- ios 点生成线路 百度地图_iOS SDK | 百度地图API SDK
- qq农场 html5,腾讯客服-QQ农场/牧场-QQ农场打不开该怎么解决?
- java如何解析cron成可视化_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...
- 腾讯TIM自动回复内容怎么自定义添加
- 谷歌Chrome浏览器正式上新Android版黑暗模式
- IE11浏览器一个窗口打开多个页面设置方法
- wex5 app应用 定时退出
- java基础学习笔记(三)
- 迈普路由器访问控制列表配置命令_如何选购企业路由器?选购企业路由器需注意什么...