#include <iostream>
using namespace std; class Test {
public:
int x;
int y;
void const_m1() const;
void const_m2() const;
void m3();
void m4();
};
/**
* //1常成员函数不能修改成员变量的值
* //2常成员函数只能调用常成员函数,不能调用普通成员函数
* //3普通成员函数可以调用常成员函数
*/
void Test::const_m1(void)const {
cout<<"start of const_m1() ,call:"<<endl;
this->const_m2();//可以调用const_m2()
//this->m3();//error C2662: “Test::m3”: 不能将“this”指针从“const Test”转换为“Test &”
//this->m4();//error C2662: “Test::m4”: 不能将“this”指针从“const Test”转换为“Test &”
//this->x = 3;//error C3490: 由于正在通过常量对象访问“x”,因此无法对其进行修改
cout<<"end of const_m1()"<<endl;
}
void Test::const_m2(void)const {
cout<<"this is const_m2()"<<endl;
}
void Test::m3(void) {
cout<<"this is m3(),call:"<<endl;
this->const_m2();
cout<<"end of m3()"<<endl;
}
void Test::m4(void) {
cout<<"this is m4()"<<endl;
this->x = ;
} int main(void) {
Test demo;
demo.const_m1();
demo.const_m2();
demo.m3();
demo.m4();
while();
return ;
}

/*测试结果:
start of const_m1() ,call:
this is const_m2()
end of const_m1()
this is const_m2()
this is m3(),call:
this is const_m2()
end of m3()
this is m4()
*/


C++,常成员函数的更多相关文章

  1. C++点滴----关于类常成员函数

    关于C++中,类的常成员函数 声明样式为:   返回类型 <类标识符::>函数名称(参数表) const 一些说明: 1.const是函数声明的一部分,在函数的实现部分也需要加上const ...

  2. C/C++中的常成员函数

    代码: #include <iostream> using namespace std; class A{ public: void func1(){ cout<<" ...

  3. C++类的常成员函数

    让一个成员函数带上常量性是什么意思呢?通常的答案是,一个常成员函数不会更改其class对象.这是一种平凡的表述,而编译器实现的手法也相当平凡. 任何非静态成员函数其实都被编译器隐式插入了一个指针类型的 ...

  4. c++ 常成员函数 和 常对象

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhuyingqingfen/article/details/31751111 先明白几个概念: 1. ...

  5. C++(三十二) — 常对象、常成员变量、常成员函数

    常量:对于既需要共享.又需要防止改变的数据.在程序运行期间不可改变. const 修饰的是对象中的 this 指针.所以不能被修改. 1.常对象 数据成员值在对象的整个生存期内不能改变.在定义时必须初 ...

  6. C++如何显式调用常成员函数

    C++的常成员函数与同名成员函数重载时,该如何显式调用常成员函数? 具体的一个小例子: #include <iostream> using namespace std; class C1 ...

  7. 【转】C++ const成员变量和成员函数(常成员函数)

    转:http://c.biancheng.net/view/2230.html 在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定.const 可以用来修饰成员变量和成员函数. co ...

  8. C++ const成员变量和成员函数(常成员函数)

    在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定.const 可以用来修饰成员变量和成员函数. const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只 ...

  9. C++ 对象成员函数(非静态方法)

    1.神奇的inline语法与语义 inline语义C99和C++98都有.之前在单源文件编写的时候一直没有发现问题,但是一考虑到多文件的链接,就发现矛盾了. 一些inline的原则: 1. inlin ...

随机推荐

  1. windows server2008 r2修改远程桌面连接端口。

    1. windows 2008远程桌面端口默认是用的是3389端口,但是由于安全考虑,通常我们安装好系统后一般都会考虑把原来的3389端口更改为另外的端口.   2.更改过程: 2-1.打开注册表:  ...

  2. jQuery.validate 中文 API

    名称 返回类型 描述 validate(options) Validator 验证所选的 FORM. valid() Boolean 检查是否验证通过. rules() Options 返回元素的验证 ...

  3. FOREIGN KEY相关

    在添加外键的时候可以在最后通过ON指定行为和三个参数,来表示操作主表数据之后外表的变化 比如若是删除主表之后的变化,就可以 ON DELETE + 三个参数 --删除department表中相关数据行 ...

  4. Git Version recovery command introduction - git reset

    reset命令有3种方式: git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git re ...

  5. UV印刷

    UV就是在一张印上你想要的图案上面过上一层油,主要是增加产品亮度,保护产品表面,其硬度高,耐腐蚀摩擦,不易出现划痕等,有些复膜产品现改为上UV,能达到环保要求,但UV产品不易粘接,有些只能通过局部UV ...

  6. Microsoft 收购 Apiphany

    StevenMartinMS 2013 年 10 月 23 日上午 10:00 今天,我高兴地宣布我们收购了业界领先的 API 管理交付平台 - Apiphany. 应用程序可扩展性已经不算什么新鲜事 ...

  7. bulk insert data into database with table type .net

    1. Create Table type in Sqlserver2008. CREATE TYPE dbo.WordTable as table ( [WordText] [nchar]() NUL ...

  8. 法方总经理用的笔记本电脑&一体机拆开图。

    键盘上有三个字符,

  9. 常用类库StringBuilder

    1.使用StringBuilder拼接字符串实例: string[] lines = File.ReadAllLines("sdjk.txt", Encoding.Default) ...

  10. 由命名空间函数而引发思考--js中的对象赋值问题

    最近没有编码任务,作为一个才毕业的小辣鸡,给的任务就是看一下公司的新系统,熟悉怎么用哪些地方是干什么的. 下午喝了两杯水,感觉有点浪.然后就开始看了下代码.发现有一个函数是这样子的. var TX = ...