これは基本クラスです:
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 です。)