我在c ++中的模板有点问题 我想用通用变量
构建一个可重用(通用)类 c#中的应该是这样的
public class TestGeneric<T>
{
public T Data {get; set;}
}
(非常愚蠢的例子,但只是为了理解)
我有这三个文件
TestGeneric.h
#ifndef TEST_GENERIC_H
#define TEST_GENERIC_H
template<class T>
class TestGeneric {
public:
void setData( T val );
//T getData( void );
TestGeneric();
private:
T data;
};
#endif
TestGeneric.cpp
#include "TestGeneric.h"
#include <Arduino.h>
template<typename T>
TestGeneric::TestGeneric()
{
Serial.println("TestGeneric Init");
}
/*
template<typename T>
T TestGeneric<T>::getData( void )
{
Serial.println("TestGeneric get data");
T d;
return d;
}
*/
template<typename T>
void TestGeneric<T>::setData( T val )
{
Serial.println("TestGeneric set data");
data= val;
}
最后 MainFile.ino
#include "TestGeneric.h"
void setup() {
Serial.begin(9600);
Serial.println("--- Start Serial Monitor---");
Serial.println("--- Start Generic method ---");
TestGeneric<int> myGeneric();
myGeneric.setData();
//Serial.println(v);
Serial.println("### END ###");
}
void loop() {
// put your main code here, to run repeatedly:
}
如果我编译我的代码,我会收到
有人可以帮帮我吗?/ Users / ******** / Documents / Arduino / **** / ****** .ino:在函数'void 建立()': ***:##:error:请求'myGeneric'中的成员'setData',它是非类型'TestGeneric()'myGeneric.setData(); ^退出状态1请求'myGeneric'中的成员'setData',这是非类型'TestGeneric()'