2012-01-12 58 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: 

};