Permalänk
Inaktiv

C++ problem.

Hej.

Jag har en uppgift där jag ska kunna välja på min överlagrade '<' operator vilken klassvariabel den ska gå efter. T.ex så ska den från början gå efter pris, men efter att jag har kallat på en funktion ska den istället gå efter namn. Och när jag väl har gjort den ändringen i min klass skall det gälla för alla objekt, inte endast det objekt jag kallat på funktionen ifrån.

Jag tänkte först göra static int ..., som jag tänkte ändra värde på. Men detta går ju inte, eftersom det blir ett konstant värde(?).

Har ni någon hint på vad jag skulle kunna göra för att få ändringen på alla objekt jag gör utav den klassen?

Permalänk
Skrivet av anon184352:

Jag tänkte först göra static int ..., som jag tänkte ändra värde på. Men detta går ju inte, eftersom det blir ett konstant värde(?).

Det går visst att ändra på den

// Fungerar static int i = 123; i = 321; //Fungerar ej static const int ii = 123; ii = 321; /*Error*/

Visa signatur

C>++

Permalänk
Medlem
Skrivet av anon184352:

Hej.

Jag har en uppgift där jag ska kunna välja på min överlagrade '<' operator vilken klassvariabel den ska gå efter. T.ex så ska den från början gå efter pris, men efter att jag har kallat på en funktion ska den istället gå efter namn. Och när jag väl har gjort den ändringen i min klass skall det gälla för alla objekt, inte endast det objekt jag kallat på funktionen ifrån.

Jag tänkte först göra static int ..., som jag tänkte ändra värde på. Men detta går ju inte, eftersom det blir ett konstant värde(?).

Har ni någon hint på vad jag skulle kunna göra för att få ändringen på alla objekt jag gör utav den klassen?

static är det nyckelordet som definierar att en variabel (eller metod) är just en klassvariabel. Annars hade det varit en instansvariabel.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Inaktiv

static beskriver en klassmedlem som global för samtliga instanser av just den klassen. Så har du en klass som heter Foo med en static member som heter Bar, och sen 2 instanser av Foo som heter Kalle och Pelle, och sedan gör Kalle.Bar = 4, så blir även Pelle.Bar 4.

Du blandar ihop static med const. Kör på med static så ska du se att det löser sig, och våga prova innan du frågar