2013-02-16 69 views
-2

我正在玩我的覆盆子pi和gpio。这一直进展良好,我现在正试图在每当移动的矩形碰到屏幕边缘时使LED灯点亮。g ++错误:Class hos没有任何成员名为

为了帮助与LED开启和关闭我有一类叫做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>; 

另一个文件时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; 

}; 

转向我做这个我得到2个错误,每个setOnFor(1000) Morph.cpp:34:9错误:类BlinkLED没有名为setOnfor的成员 Morph.cpp:40:9错误:类BlinkLED没有名为setOnfor的成员

任何人有任何想法?我真的希望看到这项工作:d

整个代码可以在 https://github.com/Reicher/FlyingCubes

回答

2

你的函数声明和定义被命名为setOnfor发现,当你调用一个名为setOnFor功能。 C++中的标识符区分大小写。你需要选择一个并保持一致。

+0

我一遍又一遍地查看代码而没有发现它!必须得到一个更大的电视或更好的眼镜我想:)非常感谢您的快速回答! – user1286316 2013-02-16 15:03:57

+0

@ user1286316很高兴能帮到你。在Stack Overflow上,我们通过接受答案来表示感谢(所以不要忘记!)。 :) – 2013-02-16 15:26:50

+1

行动,现在接受。现在btw LED灯亮起来很美!:D – user1286316 2013-02-16 15:29:14

相关问题