小编use*_*040的帖子

重载函数和继承

我试图重载一些模板函数来执行特定的操作,如果我使用给定的类MyClass或任何派生类MyClassDer调用它.这是代码:

#include <iostream>

struct MyClass {
    virtual void debug () const {
        std::cerr << "MyClass" << std::endl;
    };
};

struct MyClassDer : public MyClass {
    virtual void debug () const {
        std::cerr << "MyClassDer" << std::endl;
    };
};

template <typename T> void  func  (const T& t) {
    std::cerr << "func template" << std::endl;
}

void func (const MyClass& myClass) {
    std::cerr << "func overloaded" << std::endl;
    myClass.debug ();
}


int main(int argc, char **argv) {
    func …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates sfinae overload-resolution

13
推荐指数
2
解决办法
379
查看次数