使用arduino的c ++模板<typename t =“”>

时间:2016-08-18 15:17:27

标签: c++ arduino

我在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()'

有人可以帮帮我吗?

0 个答案:

没有答案