#include <iostream> using namespace std; #if 0 const 修饰数据成员 成员函数 类对象 1. 修饰数据成员 初始化位置只能在参数列表里面 被const修饰的数据成员,不能被修改 2. 修饰成员函数 位置在 函数声明之后,实现体之前 意义:const 函数承诺不修改数据成员。 能访问const数据成员,但不能修改非const数据成员 只能访问const成员函数 3. 构成重载 const 对象只能调用const成员函数 非const成员对象,优先调用非const成员函数,若无,则可调用const成员函数 virtual定义的函数 static定义的数据成员 virtual声明成员函数,在类的外部实现无需加上virtual static定义的数据成员,应该在类外初始化。 #endif class A { public: A(int v = 3) //默认构造器需要赋初值 :val(v) { // a = 200; cout <<val<<endl; } void dis() { cout<<"void dis()"<<endl; } void dis()const { print(); } void print()const //const修饰成员函数,可以访问数据成员,承诺不给改数据成员 { } virtual void print(); private: const int val; int x,y; static int a; }; int A::a = 200; //外部初始化 void A::print() //外部实现不加virtual { } int main() { A b; b.dis(); //非const成员对象优先调用非const成员函数 A a(10); a.dis(); }