常函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常函数相关的知识,希望对你有一定的参考价值。
为避免成员函数修改成员变量,则可将成员函数定义为常函数.格式如下。
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; }
以上是关于常函数的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中创建构造函数的代码片段或快捷方式