可以将static int idx;
声明为SortTracker类的静态成员变量,确保每个SortTracker对象共享同一个idx变量。然后在构造函数中为每个SortTracker对象分配一个唯一的id值。可以通过一个静态成员函数或全局函数来维护和递增idx变量。
以下是修改后的代码示例:
namespace obs {
class SortTracker {
public:
SortTracker(){
id = getNewId();
}
// ...
private:
static int idx;
int id;
static int getNewId() {
return idx++;
}
};
} // namespace obs
// 在.cpp文件中初始化静态成员变量
int obs::SortTracker::idx = 0;
这样,每次创建一个新的SortTracker对象时,都会调用getNewId()函数获取一个唯一的id值,并将其赋给id成员变量。同时,静态成员变量idx会自动递增,以便为下一个对象提供唯一的id值。
内容由零声教学AI助手提供,问题来源于学员提问