webForumDet fria alternativet

konstruktoranrop till klasser

C/C++

6 svar · 1 011 visningar · startad av onzo

Medlem sedan okt. 200617 inlägg
Frågan#1

Hej alla

Sitter och försöker lära mig lite C++ på egen hand genom att läsa en massa grejer jag har laddat ner i från nätet, lite olika kurser och så.

Har kört fast på en sak. Skall försöka förstå mig på det där med klasser och sitter med några uppgifter, en av dessa går ut på att man skall ha en default-konstruktor och en överlagrad med lämpliga argument. Hur man gör det tror jag att jag förstår. Men man skall också skapa en regel som beskriver hur och när dessa skall anropas.

Det där med hur den regeln skall skapas har jag hängt upp mig på. Någon som kan ge mig en liten vink om hur jag skall fixa detta?

Vore tacksam i så fall.

Tackar på förhand.....

Medlem sedan dec. 20025 483 inlägg
#2

Hej!

Jag förstår inte riktigt vad som menas med "regel" i detta fall. En defaultkonstruktor kan skapas med parametrar, om du samtidigt ger dem defaultvärden

class c
{
  public:
    c(int i = 0, string s = "");
};

c d;
c e(1);
c f(1,"g");

Men det är ju även möjligt att ha flera konstruktorer:

class c
{
  public:
    c(); //default
    c(int i);
    c(string s);
    c(int i, string s);
    c(const c&); //copy constructor
};

c d; //default
c e(1); //c(int)
c f("g"); //c(string)
c g(1, "h"); //c(int, string)
c i(d); //copy
Medlem sedan okt. 200617 inlägg
#3

Det är precis det jag undrar också... vad som menas med en regel och hur det skall göras.

Har bläddrat runt lite i en del böcker men inte hittat något. Funderar på om det kan vara så att man skall göra en if-then sats för att kolla om vissa saker uppfylls och i så fall anropas den överlagrade annars den defaulta....

Medlem sedan dec. 20025 483 inlägg
#4

Om det är meningen att användaren skall specificera värden, och att en instans av klassen skall skapas utifrån dessa värden, kanske if-satser behövs för att bestämma vilken konstruktor som skall anropas. Hur lyder uppgiften?

Medlem sedan okt. 200617 inlägg
#5

Uppgiften består av två delar. I den första skall man skapa en klass som innehåller uppgifter om en person. Det har jag fixat.

Den andra uppgiften, den som jag har problem med lyder så här:

"Lägg till en default-konstruktor och en överlagrad konstruktor med lämpliga argument. Formulera en regel som beskriver hur och när dessa anropas."

Medlem sedan dec. 20025 483 inlägg
#6

Jag tolkar det som att du i text skall beskriva vilken av konstruktorerna som anropas, givet en mängd av parametrar.

Medlem sedan okt. 200617 inlägg
#7

Mmmm... Det är mycket möjligt att det är så faktiskt.

I alla fall, jag lägger ner den deluppgiften. Det där med konstruktorbiten fattar jag och det är ju det viktigaste.

Tack!!

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)