这是基类:
template <class T>
class DataLogger
{
// ...
public:
void AddData(T Data);
// ...
}
这是派生类:
#include "DataLogger.h"
#include <utility>
class Plotter : public DataLogger<std::pair<long double, long double>>
{
// ...
public:
void AddData(long double x, long double y);
// ...
}
// This method is supposed to wrap the original AddData() method
// which was defined in the base class
void Plotter::AddData(long double x, long double y)
{
AddData(std::make_pair(x, y)); // LINE #29
}
给定的错误是:
第 29 行:IntelliSense:不存在从“std::pair”到“long double”的合适转换函数
第 29 行:IntelliSense:函数调用中的参数太少
显然,问题是我无法从派生类访问基类中的方法,即使它是公共定义的。
如何使此代码工作?
(我的 IDE 是 Visual Studio 2010。)