gpt4 book ai didi

c++ - 数组大小的静态常量成员

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:56 24 4
gpt4 key购买 nike

MyClass.h

class MyClass
{
public:

static const int cTotalCars;

private:

int m_Cars[cTotalCars];
};

MyClass.cpp

#include "MyClass.h"
const int MyClass::cTotalCars = 5;

上面的代码不起作用,因为它会为 m_Cars 数组说“预期的常量表达式”。

class MyClass
{
public:

static const int cTotalCars = 5;

private:

int m_Cars[cTotalCars];
};

上面的方法可行,但我被告知我应该始终在类定义之外的 CPP 文件中定义静态成员。我能做什么?

最佳答案

简单类型的静态 const 成员是该规则的异常(exception),因此您后面的代码是正确的。

这个异常是一个相当现代的异常(来自 C++98,但直到几年后才被每个编译器实现)所以许多老式的老师还没有意识到它。他们更喜欢成语:

class MyClass
{
public:
enum { cTotalCars = 5 };

private:
int m_Cars[cTotalCars];
};

它的行为完全相同,但现在没有什么意义了。

关于c++ - 数组大小的静态常量成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710039/

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