标签:
为避免成员函数修改成员变量,则可将成员函数定义为常函数.格式如下。
void function_name ( void )const
{}
若成员变量是mutable 关键字(去常const_cast)修饰的,则在函数中允许更改
常对象调用常函数,非常对象调用非常函数。常函数与非常函数可重载(this指针类型不同)。
若无非常变量,则非常对象可以调用常函数;但常对象不可调用非常函数
#include "stdafx.h" #include <iostream> using namespace std; class A { public: void foo(void) { cout << "非常函数" << endl; } void foo(void)const { cout << "常函数" << endl; } }; int _tmain(int argc, _TCHAR* argv[]) { A a;//非常对象可调用常函数、非常函数 a.foo(); const A b; b.foo();//常对象、对象指针、对象引用只能调用常函数 const A *p = &a; p->foo(); const A &q = a; q.foo(); system("pause"); return 0; }
标签:
原文地址:http://www.cnblogs.com/day-up/p/5153580.html