2013-02-16 23 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

相關問題