(1)成员函数的声明必须在类内,定义可以在类内或者类外。定义在类内部的函数隐式的为inline函数
非成员函数的声明和定义都必须在类外。
(2)this指针
this指针是成员函数额外的隐式参数,this是一个常量指针,不允许改变this中保存的地址。(默认情况下this的类型是指向类类型非常量版本的常量指针。)
将this声明成指向常量的常量指针的办法:
在成员函数后面加const 如:int isbn() const {return a;} (其中a为数据成员) 这样的函数称为常量成员函数。
常量成员函数不能改变调用它的对象的内容。(即表明不允许修改类的数据成员)
在类内声明常量成员函数,则在类外定义时,也要在后面加const修饰
若一个成员函数,只设计对成员变量的读操作,则尽可能声明为常量成员函数。
常量对象,以及常量对象的引用和指针,只能调用常量成员函数。 如:const Sales s,则s只能调用常量成员函数
(3)类的作用域及成员函数
编译器处理类: 1.先编译成员的声明,2.再编译成员函数体
(4)可变数据成员的办法:加mutable关键字
可变数据成员,对于任何函数,包括const函数,都能改变他的值。