Tridy – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Tridy – C / C++ – Fórum – Programujte.comTridy – C / C++ – Fórum – Programujte.com

 

Gadael0
Návštěvník
28. 11. 2007   #1
-
0
-

Zdravim, mam dotaz.

Dejme tomu ze mam takovouto strukturu trid:

class jedna

{
int x, y;
public:
jedna(int a, int b): x(a), y(b) {}
};

class druha
{
jedna z;
public:
???
};


No a ted misto tech otazniku bych chtel konstruktor, kterej budu volat treba takhle:

druha(jedna(4, 8));


Jak by mela vypadat deklarace toho konsturktoru? Hlavička asi takhle:

druha(jedna(int a, int b));

Doufam, ze jsem to napsal tak, aby se to dalo pochopit.

Diky

Nahlásit jako SPAM
IP: 193.165.2.–
Nejhorsi, co se Vam v zivote muze prihodit je, ze narazite na blbce...
sn3d0
Věrný člen
28. 11. 2007   #2
-
0
-

mozes to riesit takto:



class jedna
{
public:
int x;
int y;

jedna(int a, int b)
: x(a),
y(b)
{
}
};


class druha
{
public:
jedna j;

druha(int a, int b) : j(a, b)
{
}
};

int main()
{
druha z(1,3);

cout << z.j.x << endl;
cout << z.j.y << endl;
return 0;
}





alebo asi takto:


class jedna
{
public:
int x;
int y;

jedna(int a, int b)
: x(a),
y(b)
{
}
};


class druha
{
public:
jedna j;

druha(const jedna& q)
:j(q.x, q.y)
{
}
};

int main()
{
druha e( jedna(4, 5) );

cout << e.j.x << endl;
cout << e.j.y << endl;
return 0;
}

Nahlásit jako SPAM
IP: 213.151.208.–
shutdown -h now
sn3d0
Věrný člen
28. 11. 2007   #3
-
0
-

ale asi najkrajsie to mas takto:



class jedna
{
public:
int x;
int y;

jedna(int a, int b)
: x(a),
y(b)
{
}

jedna(const jedna& j)
{
x = j.x;
y = j.y;
}
};


class druha
{
public:
jedna j;

druha(const jedna& q)
:j(q)
{
}
};

int main()
{
druha e( jedna(4, 5) );

cout << e.j.x << endl;
cout << e.j.y << endl;
return 0;
}

Nahlásit jako SPAM
IP: 213.151.208.–
shutdown -h now
Gadael0
Návštěvník
30. 11. 2007   #4
-
0
-

Diky moc,

jo, takhle to funguje, asi to nejde udelat nejak, abych mohl mit ty promenne private, ze?

H.

Nahlásit jako SPAM
IP: 193.165.2.–
Nejhorsi, co se Vam v zivote muze prihodit je, ze narazite na blbce...
sn3d0
Věrný člen
1. 12. 2007   #5
-
0
-

samozrejme ze ide.. proste ich private sprav :) Ale samozrejme potom necakaj ze k nim budes pristupovat ako som to robil ja e.j.x a e.j.y..

Nahlásit jako SPAM
IP: 89.173.30.–
shutdown -h now
Tomas_Dejmek
~ Anonymní uživatel
52 příspěvků
2. 12. 2007   #6
-
0
-

Ti to ukážu.

class jedna


{
private: // dneska se psat nemusí nahože je private automaticky
int x;
int y;
public:
jedna(int a, int b): x(a), y(b)
{}

jedna(const jedna& j)
{
x = j.x;
y = j.y;
}
int dejX(){return x; }; // lepsi je psat this->x
int dejY(){return y; };
};

Když si přečteš tady ten serial http://builder.cz/serial24.html nemůže se stát, že budeš mít takovýto problém.
Samozřejmě pak můžeš měnit ten objekt že mu zase zadáš x a y nebo si tam můžeš dát další metody.
void vemX(int x){ this->x = x; };

void vemY(int y){this->y = y; };
//no a kdybys to chtěl mít ještě vymykenější, tak
void vemXY(int x, int y){
this->x = x;
this->y = y;

}; // tady ten strednik tom mam ve stilu nemusi tam bejt...

Nahlásit jako SPAM
IP: 85.160.110.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Tridy — založil Omfg

2 třídy — založil liamlim

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý