编程规范(c++)
1.传入参数&(引用) 传出参数*(指针)
2.使用unordered_map记录旧数据进行对比
3.在头文件中使用相对路径即可,因为在编译时(CMake)会指定头文件路径
4. include:头文件
src:源文件
utils:通用函数
5.在include中编写类
6.编写类:构造函数(explicit 显示声明)
析构函数(virtual )
声明函数时需要override,参数列表(默认值), 构造列表
定义函数时只需要参数列表, 构造列表
7.非静态成员函数的地址需要通过类名来限定
8.返回全局值可用static声明变量再返回,如果返回一个类且不使用引用需调用拷贝构造函数
在 C++ 中,如果一个类没有显式定义拷贝构造函数(NodeManager(const NodeManager&)
),并且该类包含不可拷贝的成员变量,那么编译器会自动删除默认的拷贝构造函数。
在你的 NodeManager
类中,std::mutex
是不可拷贝的(std::mutex
的拷贝构造函数被标记为 = delete
),因此编译器会隐式删除 NodeManager
的默认拷贝构造函数。
NodeManager &getGlobalNodeManager() {
static NodeManager manager;
return manager;
}
class NodeManager {
public:
void registerNode(const DataNode &node);
void updateHeartbeat(int node_id);
std::vector<DataNode> getOnlineNodes();
private:
std::mutex mutex_;
std::unordered_map<int, DataNode> nodes_;
};