c++ 函数名后面的const
来源:互联网 发布:8051单片机基本特点 编辑:程序博客网 时间:2024/04/28 23:32
#include <string>#include <iostream>using std::string;using std::cin;using std::cout;using std::endl; class Text{ public: void printconst(void) const {cout<<"hello"<<endl;} void print(void) {cout<<"hello"<<endl;} private: int k; }; Text *a; int main(void) { a = new Text(); a->print(); return 0; }
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.ccpateo@pateo-B86N53X:~/work/study$ ./mainhello
网上帖子转的太多,一个帖子能被转很多次,但是它们却从来没验证,那个例子带代码完全拷贝下来都运行不起来,呵呵,我就遇到过,下面是我找到的然后改了后才成功的
#include <string>#include <iostream>using std::string;using std::cin;using std::cout;using std::endl; class Text{ public: Text(){}; void printconst(void) const {cout<<"hello"<<endl;} void print(void) {cout<<"hello"<<endl;} private: int k; }; const Text text; int main(void) { text.printconst(); return 0; }
输出:
pateo@pateo-B86N53X:~/work/study$ ./mainhello
#include <string>#include <iostream>using std::string;using std::cin;using std::cout;using std::endl; class Text{ public: Text(){}; void printconst(void) const {cout<<"hello"<<endl;} void print(void) {cout<<"hello"<<endl;} private: int k; }; const Text text; int main(void) { text.print(); return 0; }
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.ccmain.cc: In function ‘int main()’:main.cc:27: error: passing ‘const Text’ as ‘this’ argument of ‘void Text::print()’ discards qualifierspateo@pateo-B86N53X:~/work/study$
说明:
const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数.
const对象只能调用const成员函数。
const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误
const函数中调用非const成员函数是语法错误
const对象的成员是不可修改的,然而const对象通过指针维护的对象却是可以修改的.
c. const成员函数不可以修改对象的数据,不管对象是否具有const性质.它在编译时,以是否修改成员数据为依据,进行检查.
#include <string>#include <iostream>using std::string;using std::cin;using std::cout;using std::endl;class R { public: R(int r1, int r2) { R1=r1; R2=r2; } void print(); void print() const; private: int R1, R2; }; void R::print() { cout<<R1<<R2<<endl; } void R::print() const { cout<<R1<<R2<<endl; } int main() { R a(5, 4); a.print(); const R b(20, 52); b.print(); }
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.ccpateo@pateo-B86N53X:~/work/study$ ./main542052
- c++ 函数名后面的const
- c++ 函数名后面的const
- 函数名后面加上const的作用
- 函数声明时,名后面的const的意思
- 函数参数名后面加const的意义
- C++,函数后面带const
- 一个函数名后面加const
- 一个函数名后面加const
- 一个函数名后面加const
- 一个函数名后面加const
- C++:在成员函数后面放const的作用
- 成员函数后面的const
- 关键字:Const,Const函数,Const变量,函数后面的Const
- Const,Const函数,Const变量,函数后面的Const
- Const,Const函数,Const变量,函数后面的Const
- Const,Const函数,Const变量,函数后面的Const
- 关键字:Const,Const函数,Const变量,函数后面的Const
- Const,Const函数,Const变量,函数后面的Const(转载)
- Python学习笔记-Python基础
- tomcat安装FAQ
- 考试题改错
- Use Dojo in the ZF
- css中中文字体(font-family)的英文名称
- c++ 函数名后面的const
- “程序员”真的是“IT民工”?
- SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架
- Yii使用ZF的分页方式
- Python标准库01 正则表达式 (re包)
- Smarty学习笔记二:cache与plugin
- 深入研究Hibernate之五:三种状态
- WINCE7.0 获取CPU,MEMORY等硬件和系统信息
- 使用IDA 分析高级数据结构