Portál AbcLinuxu, 14. července 2025 23:34


Dotaz: Boolean v c++

24.8.2008 17:26 fakenickname | skóre: 42 | blog: fakeblog
Boolean v c++
Přečteno: 786×
Odpovědět | Admin
Zdravicko, mam trivialni dotaz, ktery vsak neumim vygooglit.
#include <string>

int main ()
{
	std::string("");
	std::bool(true);
	return 0;
}
Proc nefunguje a co udelat, aby fungoval? Poznamka: nemuzu pouzit using namespace std;. Diky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.8.2008 17:33 Jirka P
Rozbalit Rozbalit vše Re: Boolean v c++
Odpovědět | | Sbalit | Link | Blokovat | Admin
bool není obsažen v std, je to základní typ jako int, takže stačí z std::bool udělat bool.

Jinak nevypadá, že by ten program měl nějakou funkci, takže nemůžu říct, co udělat, aby fungoval.
Jardík avatar 24.8.2008 18:25 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Boolean v c++
Odpovědět | | Sbalit | Link | Blokovat | Admin
1) Prototyp fce main() máš špatně, kurvíš zásobník. I když argumenty nepoužiješ, je dobré je tam napsat. 2) K čemu je dobré std::string("")? Vytvoříš objekt a ten hned zničíš (pokud to kompilátor sežere). 3) bool není v namespace std
#include <string>
int main(int, char**)
{
  std::string s(""); /* std::string s; udělá to samé rychleji. */
  bool b(true);
  return 0;
}
Po spuštění to samozřejmě akorát po chvilce skončí a nic to nevypíše, protože nic nevypisuješ.
Věřím v jednoho Boha.
24.8.2008 22:59 Jirka P
Rozbalit Rozbalit vše Re: Boolean v c++
Prototyp fce main() máš špatně, kurvíš zásobník
Přečti si standard, main bez parametrů je legální a nic se nekurví
Jardík avatar 26.8.2008 01:45 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Boolean v c++
Vážně? Tak např. se zavolá:
push argumenty
push pocet_argumentu
call main
A oni se v tý fci main vůbec nezpopujou ... a kde že nám asi zůstali? Na zásobníku. No linux to snad dává místo na zásobník do registrů a tam to nevadí a nepřekáží (teď si nejsem jistý, jestli to není jen pro systémová volání), protože se to přepíše, ale né všechny systémy to tak mají. No a nebo zase plácám kraviny, ale to je jedno ...
Věřím v jednoho Boha.
26.8.2008 02:08 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Boolean v c++
A oni se v tý fci main vůbec nezpopujou ... a kde že nám asi zůstali? Na zásobníku.

Ano. A kdy se ten rozdíl projeví? V okamžiku, kdy program řádně skončí (a to ještě jen jedním z možných způsobů) a ta paměť se hned poté tak jako tak uvolní.

26.8.2008 02:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Boolean v c++
Navíc i u normální funkce v C (i C++) parametry ze zásobníku uklízí volající (u variadických funkcí to v podstatě ani jinak nejde).
26.8.2008 04:26 joe
Rozbalit Rozbalit vše Re: Boolean v c++
Jarda skoncil u pascalu a chtel by poucovat :-) Samozrejme, ze pri volaci konvenci cdecl uklizi zasobnik volajici a ne volany.
26.8.2008 10:41 ...
Rozbalit Rozbalit vše Re: Boolean v c++
#include <iostream>

int main (void) {
	std::string aString;
	bool aBool = true;
	return EXIT_SUCCESS;
}

#include <iostream>

Nebo:

using namespace std;

int main (void) {
	string aString;
	bool aBool = true;
	return EXIT_SUCCESS;
}

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.