gpt4 book ai didi

c++ - 继承和静态变量

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:38 32 4
gpt4 key购买 nike

这是我的代码 -

#include <iostream>
#include <conio.h>

using namespace std;

class Base
{
public:
int a;

};

//int Base::a = 5;

class Derived : public Base
{

public:
int static a;
};

int main()
{
Derived d;
cout<<d.a;
getch();
return 0;
}

我在这里遇到链接器错误。但是当我反过来做时 -

class Base
{
public:
int static a;

};

int Base::a = 5;

class Derived : public Base
{

public:
int a;
};

我没有收到任何错误。有人可以解释一下这里发生了什么。

最佳答案

所有静态成员都必须在类外显式定义/初始化。

在第二个示例中,您正确地执行了此操作 (int Base::a=5),但在第一个示例中,您没有为 Derived::a 执行此操作,在第一个示例中添加以下行应该可以解决问题:

int Derived::a = 5;

关于c++ - 继承和静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871601/

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