0

私の将来のコードをきれいにするためにクラス/関数を作成しようとしています。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() anddisctype()` が含まれていません)。メンバー定義を次のように変更する必要があります。

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 に答える