此代码有什么问题?我在'{'标记之前得到 [错误]期望的类名(Pralka.h第14行)
我知道这里有很多类似的问题。我也用谷歌搜索过,但我无法克服它。所以我想告诉你我的代码..
我编写了这个非常简单的代码来训练自己的继承和虚函数。
main.cpp中:
#include <iostream>
#include <fstream>
#include <string>
#include "AGD.h"
using namespace std;
int main() {
Pralka p1("polar", 1250);
AGD *A;
A = &p1;
}
AGD.h:
#ifndef AGD_H
#define AGD_H
#include <iostream>
#include "Pralka.h"
class AGD {
private:
static int liczba_sprzetow;
public:
AGD(){
liczba_sprzetow++;
}
~AGD(){
liczba_sprzetow--;
}
static int get_liczba_sprzetow() {
return liczba_sprzetow;
}
virtual double get_cena() {
}
};
#endif
Pralka.h:
#ifndef PRALKA_H
#define PRALKA_H
#include <iostream>
#include <string>
using namespace std;
class Pralka : public AGD
{
private:
string marka;
double cena;
public:
Pralka(string m, double c): marka(m), cena(c){
}
Pralka(){
}
~Pralka(){
}
string get_marka() const{
return marka;
}
double get_cena() const{
return cena;
}
Pralka& operator=(const Pralka& Q){
marka=Q.marka;
cena=Q.cena;
}
};
#endif
我也 [错误]无法在作业中将'Pralka *'转换为'AGD *',但为什么?我不明白(main.cpp第29行)。
答案 0 :(得分:5)
AGD.h
包括Pralka.h
,但它应该是反过来的(Pralka.h
应该包括AGD.h
)。
原因是Pralka
需要看到AGD
声明继承它。 AGD
无需查看Pralka
声明。