gpt4 book ai didi

c++ - C++ 类的静态变量初始化,为什么要包含数据类型?

转载 作者:可可西里 更新时间:2023-11-01 15:11:46 26 4
gpt4 key购买 nike

我一直在学习 C++,我遇到过静态变量(我有 C89 的先验知识),在我使用的资源中,他们在类中声明了一个静态变量,例如:

class nameHere
{
public:
static int totalNum;
}

int nameHere::totalNum = 0;

int main()
{}

例如。我不明白的是,既然我已经在类定义中声明了静态变量是一个整数,为什么我还需要在类定义之外将它声明为一个整数?像这样简单地初始化它是否没有意义:

nameHere::totalNum = 0;

int main()
{}

是否有特殊原因或仅仅是 C++ 的约定?感谢所有的帮助!

最佳答案

这(可能)会使语言更难解析(而且它已经几乎难以解析了)。

实际上,数据类型(intlongmy_class 等等)告诉编译器它看到的是一个声明(在这种情况下,也是一个定义)。如果没有它,编译器将很难解决问题。

在全局范围内的特定情况下,情况并没有那么糟糕,因为在全局范围内,您所能拥有的只是一系列声明。然而,在任何其他范围内,事情都会更加困难(并且在全局范围内制定一个规则,而在其他地方制定另一个规则确实很丑陋)。

关于c++ - C++ 类的静态变量初始化,为什么要包含数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694058/

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