1、构造函数执行时进行初始化的属性,其声明时要放在前面,在程序执行过程赋值的初始化的属性放在较后的位置声明。
2、setter和getter函数
setter函数:
1)setter函数一定在参数前面加上const,不管参数是简单类型/对象/列表,确保在参数传递的数据不会再setter函数体中被修改!!!
void set_layer_idx(const int layer_idx) { _layer_idx = layer_idx; }
2)对于对象类型或vector列表要加上引用(&),传参更快。
void set_coord(const Coordinate<int>& coord) { _coord = coord; }
getter函数:
1)返回简单类型的getter要添加const属性,防止
int get_layer_idx() const { return _layer_idx; }
2)返回对象类型的getter一定加上引用(&),为后续的操作提供接口。
Coordinate<int>& get_coord() { return _coord; }
3、尽量不用带参构造函数,因为带参构造可能无法以下为所有的属性初始化,可视化效果不好。
如果使用带参构造,构造函数中参数的位置要和声明的顺序一一对应。
4、函数的声明和定义位置/顺序一定按照第一次调用的位置的顺序。
5、函数能传递引用就传递引用,引用传参效率高于普通对象的拷贝操作。
6、简单类型和指针类型属性一定赋默认值,相应的违例值,在外部调用的时候会报错,已提示当前属性未初始化!!!!
int _layer_idx = -1;
double _total_cost = 0.0;
ConflictNode* _conflict_head = nullptr;