gpt4 book ai didi

c++ - 如何在 C++ 类中初始化一个非静态 const 变量?

转载 作者:行者123 更新时间:2023-11-30 02:02:15 27 4
gpt4 key购买 nike

我在 Stack.h 中编写了以下代码:

class Stack{
public:
inline bool full();
int size();
inline bool empty();
bool push(const string&);
bool pop(string &s);
bool peek(string &s);
virtual void print();
virtual ~Stack(){}

protected:
vector<string> _elem;
int const _maxsize=10; // line X
};

我得到了错误:

Stack.h:14: error: ISO C++ forbids initialization of member ‘_maxsize’
Stack.h:14: error: making ‘_maxsize’ static
make: *** [Stack.o] Error 1

如果我在 X 行添加一个 static 关键字,并在类定义之外初始化变量,就可以了。

但我的问题是,有没有任何可能的方法来声明一个非静态 const 变量并仍然成功地初始化它???

最佳答案

是的,在你的构造函数中初始化它

const int NumItems;

Foo::Foo():
NumItems(15)
{
//....
}

关于c++ - 如何在 C++ 类中初始化一个非静态 const 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13460181/

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