gpt4 book ai didi

c++ - 类局部特化继承方法

转载 作者:行者123 更新时间:2023-12-01 14:53:20 25 4
gpt4 key购买 nike

template <unsigned N>
class A {
void common_function();
};

template <>
class A<1> {
void new_functionality();
};

我希望类 A<1>common_function()类继承 A

如果您需要为类的部分特化添加一些功能,但又不想重复通用的方法,这将很有用。

最佳答案

即使您说部分特化,这实际上是一个显式特化。但这都不重要,因为显式和部分特化都是与基础模板不同的类型。

实现所需功能的方法是引入另一种类型(可能根本不是模板)来处理共享功能,并从该类型派生基本模板和特化知识。

struct shared
{
void common_function() { ... }
};

template<unsigned N>
class a : public shared
{ void foo() { std::cout << "a<N>::foo" << std::endl; }
};

template<>
class a<1> : public shared
{
void foo() { .std::cout << "a<1>::foo" << std::endl; }
};

关于c++ - 类局部特化继承方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60711856/

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