kako da pristupim objektu?

Privatnom podatku ne možeš pristupati direktno, osim u datoj klasi. Napravi metod za pristup u klasi Avion2 - nešto kao:
Kod:
private Avion1 objekatAvion1;
//neka inicijalizacija... objekatAvion1;
public Avion1 getObject()
{
return objekatAvion1;
}
 
u pitanju je C++ . evo primer,upotrebio sam drugacija imena klasa jer mi je ovako bilo lakshe:

#include <iostream.h>
#include <conio.h>

class rep
{
private:
int duzinarepa;

public:

void setduzinarepa(int duz) { duzinarepa=duz; }
int getduzinarepa() { return duzinarepa; }

};

class macka
{
private:

rep tail;

public:

rep getrep() { return tail; }
macka();
~macka() { }
};

macka :: macka()
{
tail.setduzinarepa(5); // znam samo ovako da pristupim privatnom objektu "tail" a posle cu objasniti zasto
}

main()
{
macka cat;

cout << "Duzina repa: " << cat.getrep().getduzinarepa() << "\n";

getch();

return 0;
}


program sam kompajlirao i radi dobro,ali opet ne znam kako iz MAIN pristupim objektu tail ako je moguce. Ovde sam varijabli duzinarepa pristupio preko "tail" iz konstruktora ,ali kako bi to izgledalo iz main funkcije? Pokusao sam:

cat.getrep().setuduzinarepa(10);

Ali nece.Pa kako bi ishlo onda?
 
Prvo, kod postuj unutar code tagova da bi bio pregledniji.
Drugo, sve radi OK! Tj. hoće da se kompajlira! Ono što ne valja je to što ti zadaš vrednost a ona se "ne sačuva". To je zbog toga što f-ja getrep() vraca novi objekat( tj.kopiju) objekta "tail" a trebalo bi da vraća pokazivač na njega( da bi preko pokazivaca pristupio direktno objektu tail i u njega upisao vrednost).
Evo ti code:

Kod:
#include <iostream>
#include<conio.h>


class rep
{
private:
	int duzinarepa;

public:

	void setduzinarepa(int duz)		{ duzinarepa=duz; }
	int getduzinarepa()				{ return duzinarepa; }

};

class macka
{
private:
	rep tail;

public:
	macka();
	rep* getrep()			{ return &tail; }
};

macka :: macka()
{
	tail.setduzinarepa(5);
}




main()
{
	macka cat;

	cat.getrep()->setduzinarepa(144);

	cout << "Duzina repa: " << cat.getrep()->getduzinarepa() << "\n";

	getch();
	return 0;
}
 

Back
Top