gpt4 book ai didi

c++ - 如果 T 是从特定基类派生的,如何专门化模板类的实现

转载 作者:行者123 更新时间:2023-11-28 06:39:57 24 4
gpt4 key购买 nike

<分区>

如果 T 是从特定基类派生的,我想专门实现模板类。

我该怎么做?

在下面的代码中,x.f() 和 y.f() 应该做不同的工作。

我不仅要为“派生”工作,还要为 Base 的所有派生类工作。

#include <iostream>

class Base
{
};

class Derived : public Base
{
};

// If T not derived from Base:
template <typename T> class MyClass
{
public:
void f()
{
std::cout << "NOT derived from Base";
}
};

// If T derived from Base:
template <typename T> class MyClass
{
public:
void f()
{
std::cout << "Derived from Base";
}
};

int main()
{
MyClass<int> x;
MyClass<Derived> y;
x.f();
y.f();
}

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