类
本章开始介绍C++的OO部分。
class和struct只在访问权限上有差异。
定义在类里面定义的方法都是隐式的ininline
如果方法在类外定义,这时若要把它声明成inline,尽管同时在声明和定义都加上inline是合法的,但推荐只在定义时加。
关于this
this
是当前对象的指针。我们可以写成this->bookNo
,它是个常量指针。
const成员方法
std::string isbn() const {return bookNo;}
默认地,this
是个const指针,指向一个非const的对象。举个例子,对于A类,它的this
的
类型就是A *const
。
如果一个成员方法不会改变其对象,即这时this应该是const A *const
的。因为this是隐式的,不能
直接传递,所以在成员方法后面加上const
。
这样其内部伪代码类似于:
std::string A::isbn(const A *const this) {return bookNo;}
const对象,指向const对象的指针或引用,只能调用const成员方法。
返回this对象
A& someFunc()
{
return *this;
}
对于一些和类相关的工具函数,比如add, read, print等。尽管和类相关,但不是其成员。但我们还是 推荐放在一个头文件声明。