---
title: "Problem med klasser"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/69379-problem-med-klasser"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "NoiseMaker"
published: "2003-02-25T12:10:38.000Z"
updated: "2003-03-19T13:25:36.000Z"
replies: 1
views: 222
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/69379-problem-med-klasser"
---

# Problem med klasser

## #1 — NoiseMaker, 2003-02-25T12:10Z

Tjenare!

Här kommer ytterligare en nybörjarfråga.. men jag får verkligen inte till det =(
Jag sitter med Borland C++ Builder 5

Jag försöker skapa en ny class i vilken jag skall anropa en funktion som skall rita ut ett steck (eller nått). Därefter vill jag köra en "Delete" på klassen så strecket försvinner. 

Tror att jag definierat klassen korrekt, jag har lagt den i en egen fil (Unit2.cpp) men när jag försöker includa denna fil får jag felet "To many types in declaration". Vad kan detta inenbära? Har jag lagt includen på fel ställe?

Tar och skickar med sytnaxen också,, vill verkligen få detta att funka.

**Unit1.h**

//---------------------------------------------------------------------------

\#ifndef Unit1H
\#define Unit1H
//---------------------------------------------------------------------------
\#include \<Classes.hpp\>
\#include \<Controls.hpp\>
\#include \<StdCtrls.hpp\>
\#include \<Forms.hpp\>
\#include "Unit2.h"

//---------------------------------------------------------------------------
class TForm1 : public TForm
{
\__published:	// IDE-managed Components
        TButton \*Button1;
        void \__fastcall Button1Click(TObject \*Sender);
private:	// User declarations
public:		// User declarations
        \__fastcall TForm1(TComponent\* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 \*Form1;
//---------------------------------------------------------------------------
\#endif

**Unit1.cpp**

//---------------------------------------------------------------------------

\#include \<vcl.h\>
\#pragma hdrstop

\#include "Unit1.h"

//---------------------------------------------------------------------------
\#pragma package(smart_init)
\#pragma resource "\*.dfm"
TForm1 \*Form1;
//---------------------------------------------------------------------------
\__fastcall TForm1::TForm1(TComponent\* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void \__fastcall TForm1::Button1Click(TObject \*Sender)
{
Form1-\>linje::SetLine(10,15,100,200);
}
//---------------------------------------------------------------------------

**Unit2.h**

//---------------------------------------------------------------------------

\#ifndef Unit2H
\#define Unit2H
//---------------------------------------------------------------------------
class linje
{
public:
void SetLine(int PosSx, int PosSy, int PosEx,int PosEy);
private:
int Sx, Sy, Ex, Ey;
}
\#endif

**Unit2.cpp**

//---------------------------------------------------------------------------

\#include \<vcl.h\>
\#pragma hdrstop

//---------------------------------------------------------------------------
void linje::SetLine(int SxPoa, int SyPos, int ExPos,int EyPos)
{
Sx = SxPos;
Sy = SyPos;
Ex = ExPos;
Ey = EyPos;
Form1-\>Canvas-\>MoveTo(Sx,Sy);
Form1-\>Canvas-\>LineTo(Ex,Ey);
}
\#pragma package(smart_init)

Permalänk: https://www.webforum.nu/p/69379

## #2 — aasah, 2003-03-19T13:25Z

Re: Problem med klasser

> **NoiseMaker skrev:**
>
> ...**Unit1.h**
> 
> ...#include \<Classes.hpp\>
> \#include \<Controls.hpp\>
> \#include \<StdCtrls.hpp\>
> \#include \<Forms.hpp\>
> \#include "Unit2.h"
> ...**Unit1.cpp**
> 
> ... #include \<vcl.h\>

Jag har aldrig använt någon Borland Builder så det kanske är rätt att göra så i det programmet. Men enligt standarden för C++, TROR jag, att det ev kan vara fel på dina include-statements. Det jag har fått lära mig är följande:

\* Hjälpfiler slutar på .h (inte .hpp)
\* Om man ska includera något som ingår i ett standardbibliotek, tex iostream.h så skriver man \#include \<iostream\> **utan .h**
\* Om man ska inkludera .h fil skriven av en själv, tex Min_klass.h så skriver man \#include "Min_klass.h" **med .h, men inom "" istället för \<\>**

*Det behöver inte ha med ditt problem att göra, men det ser konstigt ut i mina ögon.*

Permalänk: https://www.webforum.nu/p/983778

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/69379-problem-med-klasser
