const函数总结(author:mingyuanonline#gmail.com)
来源:互联网 发布:阿狸吧吧比淘宝便宜 编辑:程序博客网 时间:2024/06/10 17:14
/* const函数总结(author:mingyuanonline#gmail.com)
* 声明const成员函数,只需在函数参数表和函数体之间加const关键字即可(此句有改动,原始版本见原作者博客)
* 注意,我们只能对类成员函数这么做,对普通全局函数不能这么做。
* 仅当某个函数是类成员时,将其声明为const才有意义,其作用是使该函数中的this指针成为const,
* 这意味着我们不能在该函数的定义内在赋值语句左边写上类的数据成员——那将被编译器标记为错误。
* const成员函数不能调用同类的非const成员函数,因为那样也有可能修改当前对象。
* 当我们将某个对象声明为const之后,该对象可以调用的成员函数也都必须是const,否则程序将不能编译。
* 注:以上参考http://blog.csdn.net/lidh04/archive/2008/07/27/2720309.aspx
*
* 总结一下即:
* 0.声明const成员函数,只需在函数参数表和函数体之间加const关键字即可
* 1.const函数声明只在类中有意义只能出现在类中,作为类的成员函数
* 2.const成员函数函数只能调用const成员函数
* 3.非const函数可以调用const成员函数
* 4.非const对象可以调用const成员函数
* 5.const对象只能调用const成员函数
* 6.const对象可以访问静态成员函数
*/
#include
#include
using namespace std;
class class_const_member_function
{
public:
class_const_member_function(string name="no name"):_name(name){};
string display(){return _name;}//非const成员函数
void display_const(string name)const{cout< //void const_try_to_modify_member_variable()const{_name="99";}//const成员函数试图修改成员变量,出错!
void const_call_const()const{display_const("const_call_const");}//const成员函数调用const成员函数
//void const_call_nono_const_function()const{display();}//const函数调用非const,出错!
void nono_const_call_const(){display_const("nono_const_call_const");}//非const成员函数调用const成员函数
static void print(string whos){cout<private:
string _name;
static string _school;
};
string class_const_member_function::_school("school");
void const_member_function_test()
{
class_const_member_function mem;//声明一个非const对象
cout< mem.display_const("name");//非const对象调用const成员函数
mem.print("mem");
const class_const_member_function const_mem;//声明一个const对象
const_mem.display_const("const_name");//const对象调用const成员函数
//const_mem.display();//const对象调用非const成员函数,出错!
const_mem.print("const_mem");//const对象访问静态成员函数
class_const_member_function::print("class");//类名调用静态函数
}
* 声明const成员函数,只需在函数参数表和函数体之间加const关键字即可(此句有改动,原始版本见原作者博客)
* 注意,我们只能对类成员函数这么做,对普通全局函数不能这么做。
* 仅当某个函数是类成员时,将其声明为const才有意义,其作用是使该函数中的this指针成为const,
* 这意味着我们不能在该函数的定义内在赋值语句左边写上类的数据成员——那将被编译器标记为错误。
* const成员函数不能调用同类的非const成员函数,因为那样也有可能修改当前对象。
* 当我们将某个对象声明为const之后,该对象可以调用的成员函数也都必须是const,否则程序将不能编译。
* 注:以上参考http://blog.csdn.net/lidh04/archive/2008/07/27/2720309.aspx
*
* 总结一下即:
* 0.声明const成员函数,只需在函数参数表和函数体之间加const关键字即可
* 1.const函数声明只在类中有意义只能出现在类中,作为类的成员函数
* 2.const成员函数函数只能调用const成员函数
* 3.非const函数可以调用const成员函数
* 4.非const对象可以调用const成员函数
* 5.const对象只能调用const成员函数
* 6.const对象可以访问静态成员函数
*/
#include
#include
using namespace std;
class class_const_member_function
{
public:
class_const_member_function(string name="no name"):_name(name){};
string display(){return _name;}//非const成员函数
void display_const(string name)const{cout<
void const_call_const()const{display_const("const_call_const");}//const成员函数调用const成员函数
//void const_call_nono_const_function()const{display();}//const函数调用非const,出错!
void nono_const_call_const(){display_const("nono_const_call_const");}//非const成员函数调用const成员函数
static void print(string whos){cout<
string _name;
static string _school;
};
string class_const_member_function::_school("school");
void const_member_function_test()
{
class_const_member_function mem;//声明一个非const对象
cout<
mem.print("mem");
const class_const_member_function const_mem;//声明一个const对象
const_mem.display_const("const_name");//const对象调用const成员函数
//const_mem.display();//const对象调用非const成员函数,出错!
const_mem.print("const_mem");//const对象访问静态成员函数
class_const_member_function::print("class");//类名调用静态函数
}
- const函数总结(author:mingyuanonline#gmail.com)
- 默写js日历控件和详细注释(非原创 原作者:@author KimSoft (jinqinghua [at] gmail.com)
- Const,Const函数,Const变量,函数后面的Const 总结
- 有关const函数总结
- const成员函数总结
- const对象,const成员函数总结
- shamphone@gmail.com
- Const用法总结:Const,Const函数,Const变量,函数后面的Const (转)
- Const用法总结:Const,Const函数,Const变量,函数后面的Const
- const修饰成员函数总结
- Const,Const函数,Const变量,函数后面的Const(转,总结的相当好)
- @author
- Const---【const对象和const成员函数及const成员属性总结】
- “输入输出函数对比及总结”和 const
- C++复制构造函数、const相关总结
- Invalid author specified. Please use the form: A U Thor <author@example.com>的解决方案
- Invalid author specified. Please use the form: A U Thor <author@example.com>的完完全全解决方案
- fatal: --author 'user@mail.com' is not 'Name <email>' and matches no existing author
- VC匈牙利命名法
- 匈牙利命名法
- GetWindowRect、GetClientRect、ClientToScreen、ScreenToClient
- 全国河南话八级考试听力试题
- VC++ warning C4290
- const函数总结(author:mingyuanonline#gmail.com)
- Google Wave - 新Web时代的沟通平台
- 同一个字,不同的字体显示出来不一样的解释
- Win32程序设计之系统安全
- Google与云计算――李开复在浙江工商大学的演讲
- eclipse、Myeclipse代码提示功能消失、增强的解决办法
- 在2009年6月20日星期六大学英语六级考试前,回忆一下我以前英语等级考试的点点滴滴
- 自今日起,中国空军堪称国之栋梁
- 一项长期计划