我正在尝试将具有模板的类作为另一个类中的对象传递给函数。换句话说,我想将Device
的对象传递给名为Sendo
的{{1}}的函数成员。
device.h
connect
sendo.h
#ifndef DEVICE_H
#define DEVICE_H
template<class T> class Device{
public:
T target;
std::string address;
Device(std::string address) : address(address){
target = new T;
}
bool coonect(){
target.connect(address)){
connected = true;
}
}
};
#endif // DEVICE_H
g ++编译器向我显示#ifndef SENDO_H
#define SENDO_H
#include "device.h"
class Sendo{
public:
Sendo(){
}
bool connect(Device target){
target.connect();
}
};
#endif // SENDO_H
文件和函数sendo.h
中的错误:
connect
我该如何解决这个问题?
答案 0 :(得分:2)
例如,您可能必须bool connect(Device<int> target)
,或者使Sendo
成为模板类。无论如何,声明Device
类型的变量都需要一些模板参数。