c++ - 为每个节点定义一个唯一的整数

标签 c++

我正在制作一个 c++ 应用程序来存储有关产品的数据,每个产品都有一个唯一的整数 ID,有没有办法做到这一点??

我已经为products做了这个类Node,但是我不知道如何让ID唯一:

class Node{
public:
    int ID;
    int cost;
    int quantity;
    string Name;

Node(){ID=0; cost=0;quantity=0; Name="";}

};

最佳答案

有几种方法可以做到这一点。一种方法是在您的类所在的头文件中有一个全局变量,用于定义 ID,并在分配每个 ID 后递增。然而,许多人试图尽可能少地使用全局变量 - 它们太容易在您不期望的时候被修改。

更好的方法可能是创建一个不同的类(让我们称它为 NodeManager),它有一个成员变量来跟踪当前 ID,每次新 ID 时都会递增成员变量请求,并且必须传递给 Node 的构造函数。

一种稍微更简洁的方法也可以避免使用全局变量,那就是使用静态变量。静态变量在该类的所有实例中都是相同的,因此您可以使用它来跟踪当前 ID。

关于c++ - 为每个节点定义一个唯一的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20477706/

相关文章:

c++ - 在函数模板中使用静态局部变量的地址作为类型标识符是否安全?

c++ - GDB 显示无堆栈

c++ - CUDA:减少算法

C++ 主线程通知线程通知主线程

c++ - 在 C++/Linux 中为 Gsoap 使用 WSSE 插件

处理长字符串(或奇怪的)时出现 C++ vsnprintf 错误

c++ - 如何排序类和友元函数的定义和声明?

c++ - MFC:CWnd::SendMessage() 是否只向其类发送消息,还是其他类可以捕获它?

c++ - OpenCV 球面投影 : Warping and Unwarping

c++ - 分发带标题的 .o 或 .a 文件