小编eik*_*ike的帖子

C++模板基类的编译器警告

我得到了一个编译器警告,我在这种情况下不理解.当我从以下代码编译"Child.cpp"时.(不要错过:我将我的课堂声明剥离到最低限度,所以内容没有多大意义,但你会更快地看到问题).我在最高警告级别上使用Visual Studio 2003Visual Studio 2008收到警告.


代码

AbstractClass.h:

#include <iostream>

template<typename T>
class AbstractClass
{
    public:
        virtual void Cancel(); // { std::cout << "Abstract Cancel" << std::endl; };
        virtual void Process() = 0;
};

// Outside definition. If I comment out this and take the inline
// definition like above (currently commented out), I don't get
// a compiler warning.
template<typename T>
void AbstractClass<T>::Cancel()
{
    std::cout << "Abstract Cancel" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

Child.h:

#include "AbstractClass.h"

class Child …
Run Code Online (Sandbox Code Playgroud)

c++ templates base-class compiler-warnings

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

标签 统计

base-class ×1

c++ ×1

compiler-warnings ×1

templates ×1