gpt4 book ai didi

c++ - 具有静态数据成员的对象的不同实例 - 可能吗?

转载 作者:行者123 更新时间:2023-11-30 05:00:59 25 4
gpt4 key购买 nike

我想在客户端使用 2 个不同的 Data 实例,而不更改其成员中的 static 键或重置其成员的值。

struct Data
{
static std::vector<int> vi;
};
struct DataUser
{
DataUser(int s) {
for (int i = 0; i < s; ++i)
{
Data::vi.emplace_back(i);
}
}
int getSize() { return Data::vi.size(); }
};

std::vector<int> Data::vi(0);

//.............. use it
int main()
{
{
DataUser d1(5);
std::cout << d1.getSize() << "\n";
}
{
DataUser d2(10);
std::cout << d2.getSize() << "\n";
}
}

例如程序的输出是

5
15

我愿意这样

5
10

最佳答案

static 总是意味着在一个二进制文件中只有它的一个实例。拥有单独实例的唯一方法是在数据中拥有数据成员和非静态成员。

关于c++ - 具有静态数据成员的对象的不同实例 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50483546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com