数据结构c++版本
C++类
基本的class语法
初始化列表:传统的 :storedValue(initialValue){ }
c++11 :storedValue {initialValue} { }
explicit 构造函数 :应该让所有的单参数构造函数为explicit的,避免后台类型转换(behind-the-scenes type conversions),例如以下代码:
intcell boj;
obj = 37;
obj是一个对象,37是一个值,左右不同,正常来说不能赋值。但是c++标准有一些宽松的法则会 intcell ak = 37; obj = ak;
ak的构建可以通过单参数构造函数完成,而explicit使用意味着单参数构造函数不能用来生成显示的ak,因此编译器会指出这种类型不匹配的问题!
常成员函数:检查但是不改变对象状态的成员函数叫做访问函数,改变状态的函数叫做修改函数!修改函数就不能用在常对象上!默认所有成员函数都是修改函数,要使函数成为访问函数,必须在终止参数类型表列的封闭圆括号的后面加上关键字const!
例如:int read() const {return storedValue ; } 因为他是一个访问函数,所以可以加一个const让他成为访问函数,访问函数有改变数据成员的值得操作就会产生bug!
接口与实现的分离: