Online 115 uživatelů Přihlášení | Registrace | Zaslat heslo | Prohlížení bez přihlášení

 

Pokud ovládáte C/C++/Visual C++/Borland C... jste vítáni... [ ID: 442 ] - [ Počítače (hardware, software) / Programování ]
1 / 37
Mini Home
Několik linků na tutorialy a řešené problémy:
LINUX:
http://www.mysteries-megasite.com/linux/frames/tutorialsframe.html
WINDOWS:
http://www.codeproject.com
http://www.codeguru.com

Toto není tutorial, ale k poučení slouží:
How to Write Unmaintainable Code

KLUB o VersionControl systemech
KLUB o makrech v ruznych IDE

Pokud budete chtit poradit s nejakym kusem kodu, radeji uvedte platformu, prekladac a pripadne dalsi knihovny, pro ktere to chcete. Jinak se fakt tezko radi...
Žádosti o řešení semestrálek, písemkových úloh a podobně jsou povoleny, pouze pokud bude přiložen kontakt na vyučujícího.
SETHEST   00:54:29 02.02.2014
GARION [ 22:47:33 01.02.2014 ]: Já si až potom co sem to koumal zjistil, že funkce, kterou budu volat, potřebuje stejně nekonstantní INPUT* (z WinAPI, takže ju nepředělám). Tak v podsatě sou 3 možnosti, buď si budu posílat ven normální odkaz na strukturu a trošičku tak zanevřu na OOP principy, budu dělat kopie té struktury, nebo přesunu ten prováděcí kód dovnitř té třídy, což ale zase moc neodpovídá logice návrhu té třídy a programu :16)
GARION   22:47:33 01.02.2014
SETHEST [ 17:35:16 31.01.2014 ]: a co kdyby A nebylo struct ale class a resilo se to normalne pomoci get_input(int), ktery bude vracet konstantni adresu na INPUT?
SETHEST   22:17:59 31.01.2014
MANTA [ 19:45:13 31.01.2014 ]: No, koukal sem na to a zdá se, že tak jak bych to potřeboval to nepude, protože to pole INPUTů musím poslat funkci, která to tak jak tak potřebuje nekonstantní. Každopádně dík za tip :24)
MANTA   19:45:13 31.01.2014
SETHEST [ 17:35:16 31.01.2014 ]: Prakticky by ti mělo stačit poslat ven adresu membera 'a' a nezveřejnit nic o té struktuře. Jen říct, že existuje struct A.
Budeš na to potřebovat dva soubory, jeden veřejný a jeden tajný.
Veřejný bude třeba "mystuff.h":

struct A;

class B {
    struct A a;

    struct A *get_a(void) {
        return &a;
    }
};

A v tajném "mystuff_impl.h" bude:

struct A {
    INPUT *inputs;
};

Všichni, kdo budou includovat "mystuff.h" budou vědět, že existuje struct A, ale neuvidí dovnitř. Všichni, kdo budou potřebovat vidět dovnitř, musí includovat "mystuff_impl.h".
SETHEST   17:35:16 31.01.2014
Zdravím, chodí sem ještě někdo? :19) Měl bych jeden dotaz:

struct A
{
    INPUT *inputs;
}

class B
{
    ...
    A a;
};

Mám třídu B, která dělá jakoby rozhraní. Uvnitř je struktura A, která obsahuje pole INPUTů. Zajímalo by mě, jestli je možný nějak z Bčka poslat ven odkaz na A, tak aby se to pole INPUTů nedalo zvenku modifikovat?
Vím, že můžu poslat ven odkaz na konstantní A, což by mělo znemožnit měnit jeho proměnný, ale přímo na prvky uvnitř toho pole už se to nevztahuje.
SYSTEM   09:45:36 28.05.2013
Automaticky generovaná zpráva:
Tento klub byl vyjmutý z kategorie Tlející kluby (kluby určené k likvidaci).
SYSTEM   08:27:13 31.03.2013
Automaticky generovaná zpráva:
Tento klub byl přesunutý do kategorie Tlející kluby (kluby určené k likvidaci).
V případě zájmu o oživení klubu, kontaktujte prosím administrátora této kategorie: HOFY.
MELDIK   20:32:54 10.04.2011
to moje mi hazi chybu:
Error 1 error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)' : cannot convert parameter 1 from 'std::string' to 'char *' d:\projekty\auta\auta.cpp 21 auta
Error 2 error C2228: left of '.get' must have class/struct/union d:\projekty\auta\auta.cpp 21 auta
BORIN   20:29:26 10.04.2011
Viz např. http://programujte.com/?akce=clanek&cl=2005041409-c++-5-lekce
BORIN   20:28:03 10.04.2011
SISA [ 18:03:17 10.04.2011 ]: Jak chceš poradit, když se ani neobtěžuješ napsat, *jakou* chybu ti to hlásí?

Pro tentokrát: :-)

struct auta {
    std::string jmeno;
    int rok_vyroby;
} auta;

int main()
{
    cin >> auta.jmeno;
    cout << auta.jmeno;
    return 0;
}
MELDIK   18:03:17 10.04.2011
trapny a zacatecnicky dotaz: mam strukturu
struct auta {
std::string jmeno;
int rok_vyroby;
};

potrebuju tam nejak ale dostat data :-)
posledni verze je cin.getline(uzivatel->jmeno,50).get();, ale hlasi mi to chybu a uz nevim jak to mam udelat. zkousel jsem cin >> uzivatel.jmeno i cin >> uzivatel>jmeno, ruzne kombinace get/getline, ale uz se vazne necham podat
ARAMIR   09:52:09 13.01.2011
MANTA [ 09:19:39 13.01.2011 ]: diky ... rikal jsem ze to je debilni dotaz ... chyba byla ve spatne naincludovanem headeru ::) UZ jsem fakt zoufal
MANTA   09:19:39 13.01.2011
ARAMIR [ 08:35:39 13.01.2011 ]: Musim se Cynebealdem nesouhlasit. Tim, ze ten enum pojmenujes, jen ziskas pojmenovany typ, ktery pak muzes pouzivat na dalsich mistech. Podle me by nemel byt problem do toho #define napsat primo 'cislo1'.

#define XYZ  _IOW (1, cislo1, int )

protoze #define nedela nic jineho nez textove nahrazovani. V tomto pripade jsou vsechny vyskyty XYZ nahrazeny tim _IOW(1, cislo1, int) a zalezi na miste pouziti XYZ, jak je cislo1 definovano.
ARAMIR   08:35:39 13.01.2011
CYNEBEALD [ 08:02:30 13.01.2011 ]: no bohuzel taky nejsem guru ale pokud standartne pouzivam
enum
{
cislo1,
cislo2
}

tak v define to cislo1 jako hodnota v klidu projde ... muj problem je ze me nejak unika jak tam prorvat enum kdyz ho mam definovany navic  nazvem.
tzn
enum PokusnyEnum
{
cislo1
}
CYNEBEALD   08:02:30 13.01.2011
ARAMIR [ 18:41:27 12.01.2011 ]: nejsem žádnej C guru ale podle mýho to co chceš takhle nepůjde. #define zpracovává preprocessor, což je úplně jiný program než překladač. Preprocesor pracuje (zjednodušeně řečeno) jako search and replace textu v preprocesorových makrech, ale o obsah kódu se nezajímá, neví o něm a nerozumí mu.

Ve chvíli kdy se ke zdrojáku dostane překladač kterej zjistí - aaa, tady mám nějakej enum, tam je definovaný Cislo1, tak už preprocesor svoji práci dávno skončil (nahradil všechny makra nějakým skutečným textem, možná v dokumentaci někde můžeš najít určitě nějaký přepínač kterým se na výstup z preprocesoru můžeš podívat).

Takže na to musíš obráceně - nejdřív nějaký #define, a teprv pomocí něj definovat ten enum.
ARAMIR   18:41:27 12.01.2011
Zdravim mam jeden stredne debilni dotaz.
enum PokusnyEnum
{
Cislo1=0,
Cislo2,
cislo3
};

a potreboval bych ziskat z enumu cislo1 a dostat ho do define
#define XYZ  _IOW (1,_sem potrebuju dostat cislo1_,int )

::)
JARDA128   04:14:54 10.01.2011
pls poradite chtel bych nainstalovat Microsoft Visual Studio 2010 a mam Microsoft Visual Studio 2008.Co mam odinstalovat tak aby e to nehadalo a nemel sem to tam zbytecne :(
JARDA128   18:57:40 12.12.2010
DARKKNIGHT [ 18:58:05 08.12.2010 ]: jak moc primitvni ma bejt ? co treba hanosky veze,loydova desitaka,kamen nuzky papir.odebirani sirek
ale to je asi moc primitvni zkus textovou adventuru nebo rpg pokdu by ti vlastni parser prikazu a directions byli prilis slozity tak to nakoduj na pevno.pokud chcest videt priklad textovy rpg hry zkus tohle
telnet://lit.klfree.cz:7680
ROCKETRANGER   20:00:59 08.12.2010
DARKKNIGHT [ 18:58:05 08.12.2010 ]: Ještě ten kontakt na vyučujícího... ::)
DARKKNIGHT   18:58:05 08.12.2010
Zdravím. Nemá někdo po ruce nějakou textovou hru v c++?
1 / 37