将类作为函数参数传递时,C ++“不是类型”错误

时间:2018-12-02 08:09:09

标签: c++ gcc

我正在尝试将具有模板的类作为另一个类中的对象传递给函数。换句话说,我想将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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

例如,您可能必须bool connect(Device<int> target),或者使Sendo成为模板类。无论如何,声明Device类型的变量都需要一些模板参数。