gpt4 book ai didi

c++ - 子类包含基类使用的静态成员

转载 作者:行者123 更新时间:2023-11-28 02:03:13 25 4
gpt4 key购买 nike

在 C++11 中,有什么方法可以在(抽象)基类构造函数访问的子类中定义静态成员变量?我没有成功尝试弄乱初始化列表,并尝试将非静态基类指针设置为该静态子类成员。我开始认为我必须为每个子类编写一个单独的构造函数,这样我才能做到这一点。有什么想法吗?

最佳答案

您可以将子类类型作为模板参数传递给基类:

#include <iostream>

template <typename Derived>
struct Base
{
Base()
{
std::cout << Derived::value << std::endl;
}
};

struct Foo : Base<Foo>
{
static const std::size_t value = 100;
};

struct Bar : Base<Bar>
{
static const std::size_t value = 999;
};

int main()
{
Foo baseFoo;
Bar baseBar;
}

live example

关于c++ - 子类包含基类使用的静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544271/

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