-2

ラズベリーパイとgpioで遊んでいます。それは順調に進んでおり、移動する長方形が画面の端に当たるたびにLEDライトを点灯させようとしています.

LEDのオンとオフを切り替えるのを助けるために、私はクラスBlinkLEDを持っています

#pragma once

#include "GPIOClass.h"

class Blienter code herenkLED
{
 public:
  BlinkLED(string gpionum);

  void update(float dt);
  void setOnfor(int ms);
  void finish();

 private:
  GPIOClass m_LED;
  int m_time2Shine;

};

Morph.cpp という別のファイルで setOnFor(1000) を実行しようとしています

#include "Morph.h"
#include "BlinkLED.h"

template <typename T>
Morph<T>::Morph()
{
};

template <typename T>
Morph<T>::Morph(T min, T max, T v)
  : m_min(min)
  , m_max(max)
  , m_v(v)
  , m_cycles(0)
  , m_LED(NULL)
{
  m_current = getRandom(min, max);
  m_period = getRandom(min, max);
  m_flip = (getRandom(0, 1) > 0);
};
template <typename T>
void Morph<T>::setLED(BlinkLED* LED)
{
  m_LED = LED;
}

template <typename T>
T Morph<T>::update(float dt)
{
  if(m_current >= m_max)
    {
      m_flip = true;
      if(m_LED)
    m_LED->setOnFor(1000);
    }
  else if(m_current <= m_min)
    {
      m_flip = false;
      if(m_LED)
    m_LED->setOnFor(1000);
    }
  else if(m_cycles >= m_period)
    {
      m_flip= !m_flip;
      m_period = getRandom((int)m_min, (int)m_max);
      m_cycles = 0;
    }

  float direction = m_flip ? -1.0 : 1.0;
  m_current += direction * (T)getRandom((T)0, (T)m_v);
  m_cycles += 1;


  return m_current;

};


template class Morph<int>;
template class Morph<float>;

これを行うと、setOnFor(1000) Morph.cpp:34:9 エラー: クラス BlinkLED に setOnfor という名前のメンバーがありません Morph.cpp:40:9 エラー: クラス BlinkLED に setOnfor という名前のメンバーがありません

アイデアはありますか?この作品がどうしても見たいです:D

コード全体は https://github.com/Reicher/FlyingCubesにあります。

4

1 に答える 1

2

関数の宣言と定義は という名前setOnforですが、 という関数を呼び出しますsetOnFor。C++ の識別子は大文字と小文字が区別されます。いずれかを選択し、一貫性を保つ必要があります。

于 2013-02-16T14:57:41.720 に答える