Gå til innhold

Hvordan skrive til en privat variabel i et objekt?


Anbefalte innlegg

Hvordan skal jeg skrive tall til variablene "ost, melk, honning" ved å bruke en funksjon?

 

 

 

#include <iostream>
using namespace std;

class Priser
{                  
 private:
   int ost, melk, honning;
 public:
Priser();
};

int main()  
{
 Priser pris1, pris2, pris3 
 
 Priser();
 return 0;
}

Priser :: Priser()
 {   }

Lenke til kommentar
Videoannonse
Annonse

du kan enten lage funskjoner som er public, eller bruke friend, men jeg har aldri fått friend til å fungere, så....

 

class Priser
{                  
private:
  int ost, melk, honning;
public:
Priser();
int Ost();
void Ost(int value);

int Melk();
void Melk(int value);

int Honning();
void Honning(int value);
};

int Priser::Ost() { return ost; }
void Priser::Ost(int value) { ost = value; }

(osv)

 

Jeg synes det er enklest å bruke overloading på egenskaper som dette, for å få til a = Priser.Ost();

Endret av GeirGrusom
Lenke til kommentar

#include <iostream>

using namespace std;

class A;

class B {
public:
 int sum (A& a);
};


class A {
public:
 A()
 {
   i = 1;
   j = 2;
   k = 3;
 }

private:
 int i, j, k;

 friend class B;
 friend int average(A& a);
}; 


int B::sum(A& a)
{
 return a.i + a.j + a.k;
} 


int average(A& a)
{
 // lisp :)
 return ((a.i + a.j + a.k) /
                 2);
}


int main()
{
 A a;
 B b;
 cout << b.sum(a) << endl;

 cout << average(a) << endl;
 return 0;
}

 

sjekk i nærmeste bok for mer detaljer -- TCPL f.eks.

Endret av dayslepr
Lenke til kommentar

Ved å gjøre slik som dette, kan du legge til produkter/lese fra fil under runtime.

#include <iostream>
#include <map>
#include <string>

class Priser {
       public:
               void registrer(const std::string& id, double val)
               { prisliste[id] = val; }
               double pris(const std::string& id)
               { return prisliste[id]; }
       private:
               std::map<std::string, double> prisliste;
};

int main()
{
       using namespace std;
       Priser prix;

       cout << "Tast inn hvilken vare du vil registrere: ";
       string varenavn;
       getline(cin, varenavn);
       cout << "Tast inn varens pris: ";
       double pris;
       cin >> pris;

       prix.registrer(varenavn, pris);
       cout << varenavn << " koster " << prix.pris(varenavn) << endl;
       return 0;
}

Bare et forslag :)

Lenke til kommentar
Min mening er at forslaget til dayslepr var noe unødvendig, men... Forslaget til GeirGrusom er enklere å utvføre, enklere å forstå, enklere å jobbe med...osv...

5045140[/snapback]

jeg postet kun for å illustrere "friend-måten" å gjøre det på

 

men så har du vel sikkert en mening om det også - altså, hva "jeg" gjør

Lenke til kommentar

hehe. ikke så gretten nå, dayslepr :p

 

I forhold til den enkle problemstillingen i spørsmålet mener jeg det er litt overkill, men jeg skjønner hva du mener. Og det var på ingen måte ment for å kritisere deg, dine kunnskaper eller din måte å jobbe på. Jeg har inntrykk av at du har et relativt høyt kunnskapsnivå, og er ydmyk for det :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...