2012-01-12 57 views
0

對C++有些新鮮感,嘗試創建類/函數以使我的未來代碼變得清晰。我正在使用Code :: Blocks創建我的程序,並在此刻接收上述消息以獲得以下用於disctype,ripmusic和dvdmanip的cpp和頭文件。編譯器是gcc,這不是主要的程序。C++,嘗試創建類時收到此錯誤:error:no'void media :: *()'在類'media'中聲明的成員函數

頭文件:

#ifndef MUSIC_H 
#define MUSIC_H 
using namespace std; 

class media 
{ 
public: 
    media(); 
    virtual ~media(); 

protected: 
    string detectdisc; 
private: 

}; 

class disctype: public media 
{ 
public: 
    disctype(); 
}; 

class ripmusic: public media 
{ 
public: 
    ripmusic(); 
}; 

class dvdmanip: public media 
{ 
public: 
    dvdmanip(); 
}; 

#endif // MUSIC_H 

cpp文件:

#include "media.h" 

//using namespace std; 
media::media() 
{ 
//ctor 
} 

media::~media() 
{ 
//dtor 
} 

void media::disctype() 
{ 
    do 
     detectdisc= system(cdde -b) 
    while detectdisc != "" 

    if (detectdisc == "An audio cd was inserted.") 
    { 
     ripmusic(); 
    } 
    else if (detectdisc == "A dvd was inserted.") 
    { 
     dvdmanip(); 
    } 
} 

void media::ripmusic() 
{ 
    musicrip.hidden=false 
} 

void media::dvdmanip() 
{ 
    //musicrip.hidden=false 
} 

回答

1

錯誤消息告訴你,你沒有在媒體指定的成員方法(格外media不含成員ripmusic(), dvdmanip() and disctype()`您稍後嘗試定義。您需要將成員定義更改爲:

void disctype::disctype(){...} 
void ripmusic::ripmusic(){...} 
void dvdmanip::dvdmanip(){...} 
0

您正在使用類似於方法的繼承類。

disctype(); 
ripmusic() 
dvdmanip() 

聲明象類,所以你不能寫

void media::dvdmanip() {} etc... 
0

定義函數,作爲媒體類的成員。

你的頭文件更改爲:

#ifndef MUSIC_H 
#define MUSIC_H 
using namespace std; 

class media 
{ 
public: 
    media(); 
    virtual ~media(); 
    void disctype(); 
    void ripmusic(); 
    void dvdmanip(); 

protected: 
    string detectdisc; 
private: 

};