【问题标题】: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; 有什么问题?
  • 你能说一下“在你的图书馆里做”是什么意思吗?
  • 你能解释一下为什么我需要在初始化时写一个类型,当我在课堂上写它的时候?很奇怪

标签: c++ class static initialization


【解决方案1】:

试试这个

class A
{
private:
    static inline image* Table = nullptr;
};

【讨论】:

  • 不工作,我在VS2019中尝试过,所以可能是它的VS
  • 我忘了你可能使用的是旧的 C++ 版本。此代码仅适用于 C++17 及更高版本。你可以去设置和更改C++的版本(不是VS版本)。
  • 通常情况下,您应该拆分为 2 个文件,.hpp 用于定义,.cpp 用于实现
猜你喜欢
  • 1970-01-01
  • 2011-07-18
  • 2015-05-18
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
相关资源
最近更新 更多