Class error in header file. "expected class-name" Please help!

Hello guys. I got this problem in a small c++ project im working on. I have build classes for different geometric forms. And in the end i am suppose to get the periphery and the area.
But i get this weird problem in my kvadrat.h file.
It says:
/kvadrat.h|11|error: expected class-name before ‘{’ token|

And guys i am sorry for my useless english. And also i am sorry because some of the code are written in swedish. But i hope u can live with that.

But here is some of the words in the code translated:

Swedish - English
Kvadrat - square
Sida - Side
Bredd - Width
Hojd - Height
Rektangel - rectangle
Cirkel - Circle
Omkrets - periphery



First we got kvadrat.h
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

// kvadrat.h


#ifndef KVADRAT_H_INCLUDED
#define KVADRAT_H_INCLUDED
#include "rektangel.h"
#include "cirkel.h"
#include <string>




class kvadrat : public rektangel        <<
{

        public:
        kvadrat(float sida);
        Cirkel* getInnerCirkel();
		std::string getFigureName();


};


#endif

----------------------
here comes the cpp file
Kvadrat.cpp

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//kvadrat.cpp
#include "kvadrat.h"
#include "cirkel.h"
#include "rektangel.h"

kvadrat::kvadrat(float sida) : rektangel(memberBredd, memberHojd)
{

}

Cirkel* kvadrat::getInnerCirkel()
{
	Cirkel *c = new Cirkel (memberBredd/2);
	return c;
}

std::string kvadrat :: getFigureName()
{
    return "Kvadrat";

}

--------------------
And here comes rektangel.h

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//rektangel.h
#ifndef TRIANGEL_H_INCLUDED
#define TRIANGEL_H_INCLUDED
#include "figur.h"


class rektangel : public Figur{

        public:
        rektangel(float b,float h);
        float getOmkrets();
        float getArea();
        std::string getFigureName();
        ~rektangel();

        protected:
        float memberBredd;
        float memberHojd;
};




#endif

--------------------
And the cpp file for rektangel
Rektangel.cpp

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//rektangel.cpp

#include"rektangel.h"
#include <string>

rektangel::rektangel(float b,float h) : memberBredd(b), memberHojd(h)
{

}

float rektangel::getOmkrets(){

    return memberBredd+memberBredd+memberHojd+memberHojd;
}

float rektangel::getArea(){

    return memberBredd*memberHojd;
}

std::string rektangel :: getFigureName()
{
    return "rektangel";
}

---------------------------

here comes Cirkel.h

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//cirkel.h

#ifndef CIRKEL_H_INCLUDED
#define CIRKEL_H_INCLUDED
#include "figur.h"
#include <string>

class Cirkel : public Figur {

    public:
        Cirkel(float radie); // Skapar en cirkel, Och ger den en odefinerad radie.

     float getOmkrets();
     float getArea();
     std::string getFigureName();
        ~Cirkel();

    protected:
    float MemberRadie;

};

#endif 

------------------------
And the cirkel .cppfile
Cirkel.cpp

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "cirkel.h"

///constructor
Cirkel::Cirkel(float radie) : MemberRadie(radie)
{

}

/// Returnar Arean
float Cirkel::getArea()
{
    return MemberRadie*MemberRadie*3.14;
}

/// Returnerar Omkrets
float Cirkel::getOmkrets()
{
    return MemberRadie*2*3.14;
}


std::string Cirkel::getFigureName()
{
  return "Cirkel";
}
/// Deconstructor
Cirkel::~Cirkel()
{


}

-------------
And here comes figur.h
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef FIGUR_H_INCLUDED
#define FIGUR_H_INCLUDED
#include <string>


class Figur{

    public:

    virtual float getOmkrets() = 0; // Beräknar och returnerar figurens omkrets
    virtual float getArea() = 0; // Beräknar och returnerar figurens area
    virtual std::string getFigureName()= 0; // Returnerar figurens namn som sträng t.ex. ”cirkel”


};


#endif 

-----------------------------------

And here we got the main file
Main.cpp
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <cmath>
#include "cirkel.h"
#include "figur.h"
#include "triangel.h"
#include "kvadrat.h"
#include "rektangel.h"

using namespace std;

int main()
{
    Figur *Figur[4];

    Figur[0] = new Triangel(3,4,0);
    Figur[1] = new rektangel(5,2);
    Figur[2] = new kvadrat(6);
    Figur[3] = new Cirkel(3);

    for(int i=0; i<4; i++){
    cout <<Figur[i]->getFigureName()<<endl
    << Figur[i]->getArea()<<endl
    << Figur[i]->getOmkrets()<<endl
    << endl;
    }




    return 0;
}

So if there is someone out there who could have a look at this i would be very happy. If you can find some syntax errors or something i just missed. Please tell me :)

And as i said b4. The problem is:
/kvadrat.h|11|error: expected class-name before ‘{’ token|

Thanks
//It3rat0r



SOLVE :: EDIT :: It was my IFNDEF and DEFINE in the rektangel.h that was just wasted. I used Triangel instad.
Last edited on
Topic archived. No new replies allowed.