Argumenty z příkazového řádku v C++

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #30 kdy: 12. 06. 2014, 18:07:15 »
DK: Tak to jsem už udělal. Základy jsem probíral V období léto až podzim minulého roku a ještě jsem si to opakoval na jaře tohoto roku.

eMko: když tam dosadím toto (schválně bez &):
Kód: [Vybrat]
  void rgb2hsv(const RGB rgb,
  const *HSV hsv){};
Tak chyba odkazuje na řádek s const:
missing type specifier - int assumed. Note: C++ does not support default-int
ale typ je přece to *HSV tak co po mě ještě chce?


.

Re:Argumenty z příkazového řádku v C++
« Odpověď #31 kdy: 12. 06. 2014, 18:11:51 »
ale typ je přece to *HSV tak co po mě ještě chce?
HSV*

D.A. Tiger

  • ****
  • 480
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #32 kdy: 12. 06. 2014, 18:16:13 »
Souhlasim s kolegou. Neber to nijak ve zlem, ale mel by jsi opravdu alespon na mesic, ten projekt prerusit a zopakovat si zaklady C/C++. Tu funkci pises spatne a spatne deklarujes jakym zpusobem se budou predavat parametry funkce. Ja ti nepsal :

void rgb2hsv(const RGB rgb,  const *HSV hsv){};

ale
void rgb2hsv( const RGB &rgb, HSV *hsv ) { };  // mprvni parametr predan hodnotou jako konstanta, druhy jako ukazatel.

ukazatel se deklaruje: TYP *nazev 

DK

Re:Argumenty z příkazového řádku v C++
« Odpověď #33 kdy: 12. 06. 2014, 18:17:13 »
no jestli ses dva semestry ucil c++ a nepochytil z toho ani tyhle zaklady, nejsem si zcela jist, zda mas dobre zvoleny obor

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #34 kdy: 12. 06. 2014, 18:23:51 »
Tiger and DK:
Tak to není o tom, že bych si nepřečetl materiály. To je prostě o tom, že potřebuju praxi! Opakování je matka moudrosti jestli to nevíte. Nikdo se nic nenaučí pokud to nezkusí. A já jsem samozřejmě zkoušel malé příklady v rámci tutoriálů, ale hold za mými zády žádný učitel nestojí, který by mě kontroloval. Navíc když si dám chvíly pauzu jako že mezi tím pochopitelně mám pauzu, nejsem někde na škole abych se to užil rok v kuse a seděl u toho pořád, tak mohu zapomenout a taky přehlédnout to co jsem si už kdysi vyzkoušel. Proč jsem nepoužil ten operátor & protože původní funkce na převod kterou jsem napsal ho neobzahuje abych k tomu nemusel přistupovat přes operátor šipka -> jelikož je to nepohodlné. Později to tam ale strčím aby to mělo přímý přístup. Teď šlo o to vyřešit první chyby. S třídama a vektorama jsem už taky nějakou dobu nepracoval tak se hold zapomene.


webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #35 kdy: 12. 06. 2014, 18:25:46 »
Proč jsem chtěl mít ty struktury uvnitř tříd a ne venku, protože mi to vytváří instanci rgb a hsv a ty jsou odlišné, takže to stejně musím přesunout dovnitř. rgb a hsv funkcí na převod jsou něco jiného než rgb a hsv options.

Re:Argumenty z příkazového řádku v C++
« Odpověď #36 kdy: 12. 06. 2014, 18:28:03 »
Ve widlích neprogramuju, ale čekal bych, že budou mít nějakou nativní podporu pro zpracování argumentů předhozených programu v commandlajně.

Eh, myslím, že ne. Ale dá se využít ta z boost knihovny http://www.boost.org/doc/libs/1_55_0/doc/html/program_options.html .

JJ, i boost se dá, samozřejmě.
Ale to už chce vědět, co a jak (ad instalace/nastavení).
A kvůli takové (s prominutím) blbůstce ...

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #37 kdy: 12. 06. 2014, 18:30:16 »
Takže ještě toto:

void hsv2rgb(const HSV MyGlobalClass::hsv, const RGB *MyGlobalClass::rgb){};

Místo MyGlobalClass potřebuju použít klíčové slovo které se používá aby se odkázalo na tu třídu zevnitř. Někde jsem to už čerl ale zapomněl jsem a nevím kde jsem to dal do poznámek. V poznámkách to nenacházím.

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #38 kdy: 12. 06. 2014, 18:31:58 »
Teda všiml jsem si, že tam má být instance za struct, jenže uvnitř třídy nevím jak to řešit. Já tou používal globálně, ale teď to globálně použít nemohu. Tak prosím o radu jak to vyřešit.

DK

Re:Argumenty z příkazového řádku v C++
« Odpověď #39 kdy: 12. 06. 2014, 18:33:19 »
webhope: ale kdyz po temer roce "aktivne-pasivniho opakovani" nevis, ze se pise TYP promenna a ne "struct * TYP promenna", tak je ta studijni priprava vazne blba...

nebo tady ten priklad, jak muzes nastavovat nazvu promenne, k jake tride patri? const MyGlobalClass::HSV hsv je spravne

D.A. Tiger

  • ****
  • 480
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #40 kdy: 12. 06. 2014, 18:42:22 »
Presne jak pise kolega DK. Ty mas ty tridu deklarovanou takto :

class MyGlobalClass{                                               /// Deklarace typu MyGlobalClass
  public:
  // options types:
  struct RGB { int r; int g; int b; };                            /// Deklarace vnoreneho typu MyGlobalClass::RGB   
  struct HSV { float h; float s; float v; };                   /// Deklarace vnoreneho typu MyGlobalClass::HSV
  struct OPTIONS { HSV from; HSV to; RGB replace; }; /// Deklarace vnoreneho typu MyGlobalClass::OPTIONS
};

Tahle trida zadne hodnoty nevytvari. Ta jen definuje urcitou datovou strukturu. A definice bez hodnoty se funkci predava dost blbe. Pokud chces, aby ta trida neco vytvarela, pak budes muset v te tride vytvorit taky nejake promene, dale konstruktor, v nemz tem promenym priradis pamet a taky nejake hodnoty. A podle toho jak tu instanci tridy vytvoris pak pristupujes k jejim clenuskym prvkum.

 

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #41 kdy: 12. 06. 2014, 18:42:56 »
kromě příkladů z minula což už bylo nevím kdy jsem ten struct použil poprvé před dvěma dnama takže to ještě nemám zažité. Většinou pracuju tak že kopíruju funkční kód po řádcích a nepracuju z hlavy abych to psal to bych se nikam nedostal protože by to házelo tunu chyb. Přesně jako ten první kód s třídou kterou jsem tu navrhl, to bylo z hlavy, ne že bych něco kopíroval tudíž chyby. A ty pa odstraňuju za chodu. Pakliže jsem se s tou chybovou hláškou nikdy nesetkal tak prostě nevím co znamená. Odkazovalo to na jiný řádek než byla ta chyba samotná a to člověka mate.

DK

Re:Argumenty z příkazového řádku v C++
« Odpověď #42 kdy: 12. 06. 2014, 18:45:57 »
no ja nevim, myslim, ze vlastnorucnim psanim kodu to pochopis nejlepe... pouhym kopirovanim se nenaucis nic


zacni tim, ze nebudes pouzivat stdafx, budes pouzivat normalni metodu main a budes postupovat podle nejakeho tutorialu na c/c++ (doporucil bych spis c, lepe pochopis ukazatele a nebudou te tam zatim plest objekty)

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #43 kdy: 12. 06. 2014, 18:47:17 »
Zatím mi tu ale nikdo neodpověděl na tu otázku jak odkázat dovnitř té třídy, když C++ nepoužívá SELF:: a moje hlava ne a ne si vzpomenout.  MyGlobalClass:: hodí že třída neexistuje protože ještě nebyla vytvořena

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #44 kdy: 12. 06. 2014, 18:49:07 »
DK: Však píšu vlastní třídu. Minule ty funkce co jsem napsal jsem taky zvládl sám (teda k odstraňování chyb potřebuju radit). Ale na tom se učím. A taky nemůže být řeč o žádném semestru tohle slovo bych nepoužil ani náhodou nejsem na škole, ale nevím kdo to tu psal.