如何方便地初始化一个类的静态成员?
Posted
技术标签:
【中文标题】如何方便地初始化一个类的静态成员?【英文标题】:How to initialize a static member of a class conveniently? 【发布时间】:2020-08-21 07:42:19 【问题描述】:我有这门课
class A
public:
static image* Table;
所以我无法在课堂上初始化A::Table
,也无法在我的库中的文件中进行初始化。有没有办法在不询问用户的情况下启动它“请在开始工作之前写“A::Table=nullptr
””?
那么A::Table
在私教课怎么办呢?
看到了类似的话题,没有找到答案
【问题讨论】:
这能回答你的问题吗? C++ static member variable and its initialization 为什么你不能在你的图书馆资源中做到这一点?image* A::Table = nullptr;
有什么问题?
你能说一下“在你的图书馆里做”是什么意思吗?
你能解释一下为什么我需要在初始化时写一个类型,当我在课堂上写它的时候?很奇怪
【参考方案1】:
试试这个
class A
private:
static inline image* Table = nullptr;
;
【讨论】:
不工作,我在VS2019中尝试过,所以可能是它的VS 我忘了你可能使用的是旧的 C++ 版本。此代码仅适用于 C++17 及更高版本。你可以去设置和更改C++的版本(不是VS版本)。 通常情况下,您应该拆分为 2 个文件,.hpp 用于定义,.cpp 用于实现以上是关于如何方便地初始化一个类的静态成员?的主要内容,如果未能解决你的问题,请参考以下文章