const修饰函数
#include <iostream> using namespace std; class A { public: A(int age); void printAge() const; // 这是个常成员函数,绝不可以修改成员变量:age和name // 常成员函数只能对成员变量进行读操作 // 通常把get...()等定义为常成员函数 void eat(); private: int age; char name; }; A::A(int age) { this->age = age; } void A::printAge() const{ cout << age << endl; } void A::eat() { cout << "吃午饭" << endl; }
// test.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include "A.h" using namespace std; void t(int *pp1) { int t = 222; pp1 = &t; cout << "pp1:" << pp1 << endl; } int main() { A *a = new A(22); const A *p = new A(22); p->printAge(); a->eat(); system("pause"); return 0; }
还需要注意:
1.常对象或常引用或常指针只能调用常成员函数。但是普通对象(无const修饰)都能调用, 即:既能调用常成员函数,也能调用非常的。
2.常成员函数只能调用常成员函数,不能调用非常函数。