C++, получите это при попытке создания классов: error: no 'void media::*()', функция-член объявлена в классе 'media'
Несколько плохо знаком с 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
}
3 ответа
Сообщения об ошибках говорят о том, что у вас нет указанных методов члена в СМИ (в частности, media
не содержит членов ripmusic(), dvdmanip() and
disctype()`, который вы пытаетесь определить позже. Ваши определения членов должны быть изменены на:
void disctype::disctype(){...}
void ripmusic::ripmusic(){...}
void dvdmanip::dvdmanip(){...}
Вы используете наследует классы как методы.
disctype();
ripmusic()
dvdmanip()
объявлены как классы, поэтому вы не можете писать
void media::dvdmanip() {} etc...
Определите свои функции как члены класса мультимедиа.
Измените заголовочный файл на:
#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:
};