0

对 c++ 来说有点新,试图创建类/函数以使我未来的代码干净。我正在使用 Code::Blocks 来创建我的程序,并且目前接收到以下 cpp 和 disctype、ripmusic 和 dvdmanip 的头文件的上述消息。编译器是 gcc,这不是主程序。

头文件:

#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
}
4

3 回答 3

1

错误消息告诉您,您在媒体中没有指定的成员方法(特别media是不包含ripmusic(), dvdmanip() and您稍后尝试定义的成员 disctype()`。您的成员定义需要更改为:

void disctype::disctype(){...}
void ripmusic::ripmusic(){...}
void dvdmanip::dvdmanip(){...}
于 2012-01-12T18:37:25.630 回答
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:

};
于 2012-01-12T21:06:51.587 回答
0

您正在使用继承类,如方法。

disctype();
ripmusic()
dvdmanip()

被声明为类,所以你不能写

 void media::dvdmanip() {} etc...
于 2012-01-12T18:39:03.133 回答