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

Příklad z Mistrovství – C / C++ – Fórum – Programujte.comPříklad z Mistrovství – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Arach
~ Anonymní uživatel
2 příspěvky
8. 7. 2007   #1
-
0
-

čau, mám menší problém s jedním příkladem z mistrovství a nevím si s ním rady.



#include <iostream>
using namespace std;

struct CandyBar {
char * a;
double b;
int c;
};

void tiskni(const CandyBar& );

int main()
{
CandyBar zk = { "C++" , 2.85 , 2};
tiskni(zk);
return 0;
}

void tiskni(const CandyBar& i)
{
cout<<i.a<<endl;
cout<<i.b<<endl;
cout<<i.c<<endl;
}


K tomuhle jsem zatím dospěl. Problém je, že bych potřeboval ve struktuře CandyBar aby to nebyly typy double a int, ale double* a int*. A s tímto se váže můj problém. Pokud to tak učiním, nevezme mi inicializování struktury zk. Pokud to chci udělat prvek po prvku, tak se nemůžu dostat pomocí zk.*a k prvku struktury. Nevím proč.

Druhý dotaz je ohledně implicitní inicializace struktury. Napadá mě pouze nějaká konstrukce podmínek. Je nějaký efektivnější způsob ?

Předem díky za zodpovězení otázek (pokud možno "human readable" způsobem;) )

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
janc1
~ Anonymní uživatel
98 příspěvků
8. 7. 2007   #2
-
0
-

ak nechces aby to boli int a double ale pointery a int a double tak nejak takto:

#include <iostream>

using namespace std;

struct CandyBar {
char * a;
double *b;
int *c;

};

void tiskni(const CandyBar& );

int main()
{
double cislo = 2.85;
int cislo2 = 2;

CandyBar zk = { "C++" , &cislo , &cislo2};
tiskni(zk);
return 0;
}

void tiskni(const CandyBar& i)
{
cout<<i.a<<endl;
cout<<i.b<<endl;
cout<<i.c<<endl;
}

Nahlásit jako SPAM
IP: ...–
Arach
~ Anonymní uživatel
2 příspěvky
9. 7. 2007   #3
-
0
-

díky, nakonec jsem na to přišel sám :-) Problém byl v inicializaci strutkury zk . Nakonec to vyřešilo

CandyBar zk = vyrob("ahoj",new double(2.55),new int(400));

A přístup k proměnným jsem si opravil na *(i.b) a *(i.c) ... (házel jsem derefenční znaménko na špatné místo)
Ale i tak děkuji :-)

Nahlásit jako SPAM
IP: ...–
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, 118 hostů

Podobná vlákna

Mistrovství v c++ příklad — založil vollf82

Mistrovstvi C++ 8.4 — založil Onsi

Mistrovstvi V C++ — založil defer

Mistrovstvi C++ — založil Petr Pilař

Koupím Mistrovství v C++ — založil jerabina

Moderátoři diskuze

 

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