普通成员方法
1、属于类的作用域
2、能访问private成员
3、调用时必须依赖一个对象
4、可以调用static方法和const方法
静态成员方法
1、属于类的作用域
2、能访问private的静态成员,不能访问非static成员
3、需要通过作用域调用
4、static方法无this指针,static方法不能调用普通方法和const方法
5、不能定义为virtual、const、volatile函数
常方法
1、属于类的作用域
2、被const修饰的函数不可以修改普通对象(因为this指针也被const修饰了)
3、调用时必须依赖一个对象
4、不可以在const方法里调用普通方法
然后再聊聊常数据成员和静态数据成员
常数据成员
1、在C中可初始化一次之后不可修改(常变量)在C++中必须初始化之后不可被修改(常量,可做数组长度)
2、只能在构造函数初始化列表中进行初始化
3、const关键字可以用于重载函数的区分:
假设类中有如下声明:void fun();void fun()const;是对fun的有效重载
4、在C++中若初始时赋的常变量,它会变成常变量
5、在C++中编译时,用const修饰的量会被替换成初始值
静态数据成员
1、可以实现多个对象间数据共享,它只存储一处供所有对象使用,包括派生类对象
2、必须在类外初始化,须加上作用域
3、静态数据成员是类的成员而不是对象的成员
4、可以通过类名访问(作用域运算符)
5、静态数据成员是类域中的全局变量,他的初始化不要放在头文件中
6、它的类型可以使当前类的类型,如
class A
{public:static a;//正确
base b//错误
base *c;base &d; //正确
};