小编Tor*_* L.的帖子

将模板方法移动到微分中断编译

给出以下代码:

template<typename T>
class A
{
public:
   T t;
};

class B
{
public:
   void foo(int i) {}

   template<typename T>
   void foo(A<T>& a) {}
};

int main()
{
   A<int> a;
   B      b;

   b.foo(a  );
   b.foo(a.t);
}
Run Code Online (Sandbox Code Playgroud)

这编译并且工作正常; 正确重载版本B::foo()进行选择,并呼吁aa.t.

现在我介绍一个新的类C,从派生B和移动的模板版本::foo()出来B,进入C:

template<typename T>
class A
{
public:
   T t;
};

class B
{
public:
   void foo(int i) {}
};

class C: public B
{
public:
   template<typename …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance overloading

5
推荐指数
1
解决办法
87
查看次数

标签 统计

c++ ×1

inheritance ×1

overloading ×1