c++ - 为什么静态变量没有设置为 1000
问题描述
我的类中有一个静态变量,我在 cpp 文件中将其实例化为 1000。
class Container
{
private:
static long GLOBALID;
long MyID;
public:
Container();
long GetId();
};
cpp 文件的代码。
long Container::GLOBALID = 1000;
Container::Container()
{
MyID = GLOBALID++;
}
long Container::GetId()
{
return MyID;
}
当我打印容器对象的 ID 值时,它们会不断增加。
我的问题是,当我创建一个新对象时,我将静态变量实例化为 0f 1000 那么为什么它会随着创建的每个对象而不断增加呢?
解决方案
每创建一个新的 Container 对象,您就将Container::GLOBALID
数字加 1。这是因为您MyID = GLOBALID++
在 Container 构造函数中调用,它返回 GLOBALID 然后递增它,请参阅前缀和后缀递增
推荐阅读
- react-native - 如何在反应式中重定向按钮
- highcharts - Highcharts 会自动呈现新的 XHR CSV 列吗?
- android - 从 FileDescriptor 或 ParcelFileDescriptor 获取视频时长
- vowpalwabbit - 无法在守护程序模式下运行 vowpal wabbit 上下文强盗
- python - Python如何打印整数列表,以便列表的每个元素都在新行中
- material-ui - 使用 paginationMode="server" 时如何在 Material-UI Data-Grid/XGrid 组件中设置默认过滤器
- python - 在 tkinter 中更改图片的位置
- php - 如果 $meta_value 更改的功能不起作用
- sql - SQL Server 中的电子邮件地址查找
- java - 硬币找零递归项目说明