#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. C++的常量折叠(三)

    背景知识 在开始之前先说一下符号表,这个编译器中的东西.下面看一下百度百科中的描述: 符号表是一种用于语言翻译器中的数据结构.在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如 ...

  2. textwrap——文本包裹和填充模块解析

    textwrap模块提供了两个函数wrap()和fill(),以及TextWrapper类,以及另外一个工具函数dedent().         wrap()以及fill()都可以用来格式化一大段文 ...

  3. bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理

    题目链接 1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1706  Solved: 985[Submit][ ...

  4. Select specified items from Tuple List

    #Select specified items from Tuple List ##Select one item to form list `tupleList.Select(element =&g ...

  5. 转:命令和查询责任分离(CQRS)架构模式

    读了“蓝皮书”距今差不多一年,它改变了我的软件开发和构建软件架构观.在我作为一名程序员期间,我尝试了许多不同的方式来构建软件.方法有很多,包括一个贫血的域模型(Anemic Domain Model) ...

  6. java学习之即时通信项目实战

     项目总结:这次项目主要是根据视频来的,结果跟到一半感觉跟不上,慢慢自己有了自己的想法,决定自己先不看学习视频,自己先试着写. 总结写前面,算是写的第一个项目吧.项目中遇到几点问题,首先Scoket对 ...

  7. Android学习资料PDF免费大放送,每日更新!有需要的亲看这里

    说明:以前有资料分享的时候,都叫大家留下自己的QQ邮箱,这样被很多的程序猿们认为我是专门来钓你们的QQ邮箱的.为此给大家带来的顾虑,深表抱歉.从现在开始,以后的分享资料我都会放在自己的百度网盘中,提供 ...

  8. Android多线程断点续传下载

    这个月接到一个项目.要写一个像360助手一样的对于软件管理的APP:当中.遇到了一个问题:多线程断点下载 这个 ,因为之前没有写过这方面的应用功能.所以.不免要自学了. 然后就在各个昂站上收索并整理了 ...

  9. 用javap命令反编译来分析字符串问题

    编写Test.java.编译完后生成Test.class文件,然后对该文件运行javap -c Test命令,生成字节码指令.阅读并得出结论 一.s1和s2指向常量池的不同常量 ①java代码 pub ...

  10. Implement custom foreach function in C#

    http://msdn.microsoft.com/en-us/library/System.Collections.IEnumerator.aspx http://support.microsoft ...