出了什么问题 - 在'{'标记之前预期的类名

时间:2014-01-30 11:07:30

标签: c++

此代码有什么问题?我在'{'标记之前得到 [错误]期望的类名(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行)。

1 个答案:

答案 0 :(得分:5)

AGD.h包括Pralka.h,但它应该是反过来的(Pralka.h应该包括AGD.h)。

原因是Pralka需要看到AGD声明继承它。 AGD无需查看Pralka声明。