当前位置: 首页 > news >正文

表白网站制作教程双公示网站专栏建设情况

表白网站制作教程,双公示网站专栏建设情况,徐州网站建设多少钱,如何制作一个二维码const 和 volatile 的使用范围几乎没有限制 实例成员函数的参数后面可以出现 const 或 volatile#xff0c;它们都用于修饰函数隐含参数 this 指向的对象 实例函数对象的参数表后面出现 const 说明this 所指向的对象是不能修改的只读对象 但是可以修改this所指向对象的非只读类…const 和 volatile 的使用范围几乎没有限制 实例成员函数的参数后面可以出现 const 或 volatile它们都用于修饰函数隐含参数 this 指向的对象 实例函数对象的参数表后面出现 const 说明this 所指向的对象是不能修改的只读对象 但是可以修改this所指向对象的非只读类型的静态数据成员 实例函数成员参数表后出现const volatile const volatile 如果这些实例函数对象隐含参数this的修饰词不同则可视为重载函数 调用实例函数成员编译器会将实参的类型同this的类型匹配从而调用最适合的实例函数成员 可读/写的普通变量或者对象应该调用参数表后不带 const 或者 volatile的实例函数成员 const对象则应该调用参数表后 带 const 的实例函数成员 volatile对象应该调用参数表后带 volatile 的实例成员函数 注意如果调用的时候不存在对应的实例函数成员会报错 我们来看一个例子这个例子都是匹配的调用对应的函数 #includeiostream using namespace std; class A {int a;const int b; public:int f() {cout f() endl;a;//b; 不可修改return a;}int f()volatile {cout volatile f() endl;a; // 可以修改本类实例成员数据成员 volatile int a//b;return a;}int f() const volatile {cout f() const volatile endl;// a; 也是错误的return a;}int f()const {cout f() const endl;// a ;也是错误的return a;}A(int x) :b(x) {a x;} }; A w(3); // 这是一个可写对象 const A x(6); // 这是一个可读对象 volatile A y(6); // 定义易变对象 const volatile A z(8); // 定义可读易变对象 int main() {w.f();x.f();y.f();z.f(); }最后的结果如下: 我们来分析一下上面的四个函数成员 f(), 这四个函数成员为重载函数它们的显示参数表没有定义任何形参但是隐含形参this的类型各不相同this用于指向当前函数得对象。 我们来深入思考一下如果没有最完美得匹配编译器会退而求其次调用次匹配的函数吗 看下面的代码我把 fun() const 和 fun() volatile 都注释看看情况会怎么改变 #includeiostream using namespace std; class A {int a;const int b; public:int f() {cout f() endl;a;//b; 不可修改return a;}//int f()volatile {// cout volatile f() endl;// a; // 可以修改本类实例成员数据成员 volatile int a// //b;// return a;//}int f() const volatile {cout f() const volatile endl;// a; 也是错误的return a;}//int f()const {// cout f() const endl;// // a ;也是错误的// return a;//}A(int x) :b(x) {a x;} }; A w(3); // 这是一个可写对象 const A x(6); // 这是一个可读对象 volatile A y(6); // 定义易变对象 const volatile A z(8); // 定义可读易变对象 int main() {w.f();x.f();y.f();z.f(); }运行结果如下 我们看的出来const A x(6) 和 volatile A y(6) 由于找不到最合适的匹配函数都调用了 f() const volatile 我们再来看一个代码只注释掉 f() const volatile 函数 看看如何 #includeiostream using namespace std; class A {int a;const int b; public:int f() {cout f() endl;a;//b; 不可修改return a;}int f()volatile {cout volatile f() endl;a; // 可以修改本类实例成员数据成员 volatile int a//b;return a;}//int f() const volatile {// cout f() const volatile endl;// // a; 也是错误的// return a;//}int f()const {cout f() const endl;// a ;也是错误的return a;}A(int x) :b(x) {a x;} }; A w(3); // 这是一个可写对象 const A x(6); // 这是一个可读对象 volatile A y(6); // 定义易变对象 const volatile A z(8); // 定义可读易变对象 int main() {w.f();x.f();y.f();z.f(); }发现 报错原因 我们在刚刚的基础上再把 f() const 注释调用 #includeiostream using namespace std; class A {int a;const int b; public:int f() {cout f() endl;a;//b; 不可修改return a;}int f()volatile {cout volatile f() endl;a; // 可以修改本类实例成员数据成员 volatile int a//b;return a;}//int f() const volatile {// cout f() const volatile endl;// // a; 也是错误的// return a;//}//int f()const {// cout f() const endl;// // a ;也是错误的// return a;//}A(int x) :b(x) {a x;} }; A w(3); // 这是一个可写对象 const A x(6); // 这是一个可读对象 volatile A y(6); // 定义易变对象 const volatile A z(8); // 定义可读易变对象 int main() {w.f();x.f();y.f();z.f(); }我们来看看报错如何 我们最后进行一个实验只把 f() 函数注释掉看看会发生什么 #includeiostream using namespace std; class A {int a;const int b; public://int f() {// cout f() endl;// a;// //b; 不可修改// return a;//}int f()volatile {cout volatile f() endl;a; // 可以修改本类实例成员数据成员 volatile int a//b;return a;}int f() const volatile {cout f() const volatile endl;// a; 也是错误的return a;}int f()const {cout f() const endl;// a ;也是错误的return a;}A(int x) :b(x) {a x;} }; A w(3); // 这是一个可写对象 const A x(6); // 这是一个可读对象 volatile A y(6); // 定义易变对象 const volatile A z(8); // 定义可读易变对象 int main() {w.f();x.f();y.f();z.f(); }发现报错如下 总结一下总的一个优先级如下 啥都没有 const 和 volatile const volatile 我来解释一下如果一个对象不含 const 以及 volatile 那么会优先调用不含const 和 volatile 的函数如果没有就去调用 f() const 或者 f() volatile 之一这里如果两个都存在编译器不知道调用哪一个就会报错如果 f() const 或者 f() volatile 都不存在才调用f() const volatile 如果对象是 const 类型的也是同样的道理先去找f() const ,找不到才调用 f() const volatile 且补充一个小点const 和 volatile 不能出现在构造函数或析构函数的参数表后因为构造或者析构一个实例对象的时候对象必须是可以修改的且必须处于稳定状态(volatile 说明是易变对象)
http://www.dnsts.com.cn/news/26306.html

相关文章:

  • 海尔建设此网站的目的是什么做门户网站赚钱吗
  • 制作网站的专业公司吗视频网站模板下载
  • aspx网站实例怎样做带音乐的表白网站
  • dede cms 网站模板微信公众号登录平台登录
  • 深圳网站建设创造者wordpress几万条数据
  • 搭建网站平台有前途吗网站建设 物流
  • 河北住房和城乡建设厅网站电话是多少注册公司要哪些条件费用
  • 佛山网站建设模板建站网站制作的英文
  • 学校网站群建设设计银川市住房建设局网站
  • 网站做直播需要资质吗wordpress问卷填报主题
  • 搭建网站首页店铺网络推广有哪些渠道
  • 简述网站开发的基本流程wordpress dragon
  • 资源丰富免费的网站推荐排名网页制作软件2023
  • dedecms 百度网站地图为什么做的网站搜不出来
  • 凌源网站优化采集网站文章
  • 网站备案通过后怎么办怎么建设一个电影网站
  • 免费个人网站源码php上海中小企业网站建设
  • 一个营业执照可以做几个网站想学做网站需要学什么
  • 网店店铺装修怎么做哈尔滨整站优化
  • 建设公司网站步骤保险理财网站建设
  • 合肥网站建设认准 晨飞网络重庆永川微网站建设
  • 自媒体交易网站开发用自己的手机做网站
  • 网站优化宝青岛商网站建设
  • 网站建设ningqueseo郑州网站外包哪家好
  • 程序员做兼职的网站网站开发中视屏怎样编辑到网页上
  • 佛山企业网站建设流程学院网站建设作用
  • 承德网站制作公司北京个人注册公司流程和费用
  • 网站免费源码大全潍坊高端网站建设
  • wordpress全站固定链接wordpress视觉编辑器
  • 浙江网站建设哪家专业老薛主机用wordpress