gpt4 book ai didi

c++ - 静态类成员的初始化

转载 作者:行者123 更新时间:2023-11-30 01:29:46 24 4
gpt4 key购买 nike

如果我尝试初始化 obj_s,它会要求我将其设置为 const - 我不能这样做,因为我必须对创建的对象进行计数。

#include<iostream>

class A
{
static int obj_s=0;
public:
A(){ ++obj_s;cout << A::obj_s << "\nObject(s) Created\n"; }
};

int main()
{
A a,b,c,d;
}

下面的代码一直给我以下错误:

  [Linker error] undefined reference to `A::obj_s' 

最佳答案

[已解决]

代码给出错误是因为在第二种情况下对象没有被创建,而在第一种情况下它没有初始化,它应该的方式 -这是固定代码:

#include<iostream>
class A
{
static int obj_s;
public:
A()
{ obj_s++; std::cout << A::obj_s << "\nObject(s) Created\n" ; }
};

int A::obj_s=0; // This is how you intialize it

int main()
{
A a ,b,c,d;
}

关于c++ - 静态类成员的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359718/

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