---
title: "Vektorer och klasser."
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/28132-vektorer-och-klasser"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "SPiN"
published: "2001-11-25T02:05:00.000Z"
updated: "2001-11-29T19:16:00.000Z"
replies: 7
views: 482
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/28132-vektorer-och-klasser"
---

# Vektorer och klasser.

## #1 — SPiN, 2001-11-25T02:05Z

Hej!

Nu är jag förvirrad, kan jag inte göra så här?

```
#ifndef CHANDLER_H
#define CHANDLER_H

typedef vector<string> SVECTOR;

class CHandler {
        private:
                char* filename;
                SVECTOR namn;
                SVECTOR email;
        public:
                CHandler(const char* file);
                void Add(const char* nyttnamn, const char* nyemail);
                void Save();
                void Show();
};

#endif
```

På raden typedef vector\<string\> SVECTOR får jag felmeddelandet , expected och så får jag type name expected på raden SVECTOR namn och SVECTOR email.

Vad är det som är fel? :q
Använder Borland, om det har med det att göra...

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

## #2 — Muzzafarath, 2001-11-25T11:12Z

\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
\#define SVECTOR vector\<string\>

?

\[r\] :r

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

## #3 — SPiN, 2001-11-25T11:47Z

Hmm, ett felmeddelande försvann, dvs. det på raden med typedef. Men jag kan ändå inte deklarera några variabler med SVECTOR utan att få ett type name expected\-felmeddelande.

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

## #4 — Swey, 2001-11-25T13:11Z

Det är inget fel på din kod. Muzzafarath har däremot förväxlat ordningen.

Har du inkluderat string och vector samt använt namnuntrymmet std?

\#include \<vector\>
\#include \<string\>
using namespace std;

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

## #5 — SPiN, 2001-11-25T13:26Z

Japp, det har jag gjort. Jag har en header-fil med klassen, där inkluderas ju inga filer, sedan en definitionsfil där alla definitioner och inkluderingar finns.

Förutom ovanstående kod, som förresten ligger i CHandler.h, har jag denna:

```
#include <fstream>
#include <vector>
#include <cstring>
#include <string>
#include "CHandler.h"
using namespace std;

CHandler::CHandler(const char* file) {
        // Här händer det nåt
}

void CHandler::Add(const char* nyttnamn, const char* nyemail) {
        namn.push_back(string(nyttnamn)); // Lägg till ett namn i listan
        email.push_back(string(nyemail)); // Lägg till en email i listan
}

void CHandler::Save() {
        // Här händer det nåt
}

void CHandler::Show() {
        // Här händer det nåt
}
```

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

## #6 — Chainsaw, 2001-11-25T20:41Z

Suck. Du har gjort ett löjligt litet fel som ger dig detta uppträdande. Fixen är mycket enkel. Här är den viktiga sektionen:
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>#include \<string\>
\#include "CHandler.h"
using namespace std;
Byt plats på de två raderna längst ner. Det du EGENTLIGEN skulle ha gjort är att inkludera alla filer som behövs för header-filen i just header-filen.

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

## #7 — SPiN, 2001-11-26T15:22Z

Det hjälpte inte heller, så jag har nu gjort om mina filer... Nu verkar det funka :)

Tack för hjälpen, ivf!

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

## #8 — SPiN, 2001-11-29T19:16Z

Halloj igen!

Hur överlagrar jag cin.getline() med en funktion i en egen klass? Jag har prövat så här:

\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
friend istream & getline(istream & i, MinStringKlass & str, int length, char delimiter) {
&nbsp; &nbsp; char\* in = new char\[length + 1\];

&nbsp; &nbsp; i.getline(in, length, delimiter);
&nbsp; &nbsp; if(i)
&nbsp; &nbsp; &nbsp; str.set(in);

&nbsp; &nbsp; delete \[\] in;

&nbsp; &nbsp; return i;
}

Det här känns inte rätt. Gör jag så här?

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

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/28132-vektorer-och-klasser
