Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Náš Lopuch Vám
vytře zrak

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: rvxsxdb
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
david11 David11 - Bilbo..and the mouse police never sleeps 27.11.2012 15:40  882
MFC dialogyMám problém s MFC dialogy. Nestalo se prosím vás někomu něco podobného, resp. mohl byste mi prosím někdo poradit v čem bych mohl mít botu?

V jednom projektu používám MFC dialogy běžně. Vznikla potřeba, abych je použil i v druhém, kde jsem je doteď neměl. Nastavil jsem v settings druhého projektu vše týkající se MfC (na co jsem přišel) stejně jako v prvním. A když teď v resourcích vytvořím nějaký svůj nový dialog a snažím se ho vyvolat, objeví se po zavolání dlg.DoModal(); dialog jiný (tnz. ne ten můj, v tom jiném je jen tlačítko OK a Ignore a křížek na zavření dialogu, jinak je celý dialog včetně stavového řádku prázdný).

Netušíte prosím někdo v čem by mohla být bota? Je to asi nějaká kravina, a já na to zaboha nemohu přijít... Díky.
bredy 25.9.2012 08:28  881
No fuj!
Pokud někam dávám referenci, tak proto, že nechci, aby se dala změnit.

Mimochodem, strčit do objektu referenci na cokoliv krásým způsobem eliminuje defaultní operátor přiřazení.
sekory Sekory The journey of thousand miles - starts with a single step. 4.9.2012 19:49  880
huh: To jsem ani nevěděl.. Někdo mi to říkal, tak jsem to prostě vyzkoušel, a je pravda, že práve jen na MSVC 2010, tak nevím jestli to kousne i jiný kompilátor.
huh huh 4.9.2012 19:42  879
Sekory [878]: Je zajímavý, že VC++ 2010 to stráví, protože standard jasně říká "If a union contains a static data member, or a member of reference type, the program is ill-formed."
sekory Sekory The journey of thousand miles - starts with a single step. 4.9.2012 19:27  878
huh se dotkl toho, jake reseni se zmenou reference jsem mel na mysli. Reference je vlastne neco jako pointer, takze staci vytvorit union s pointrem. V kodu je jeste jedna pomerna zajimava featura a to, ze jmeno typu muze poslouzit i jako jmeno promenne. :)



#include <iostream>
using namespace std;

union test
{
	int* p;
	int& r;
	test(int& x):r(x){}
};

main()
{
	int a = 5;
	test test(a);
	int c = 3;
	test.p = &c;
	c += 3;
	cout << test.r << endl;

	return 0;
}

sekory Sekory The journey of thousand miles - starts with a single step. 2.9.2012 22:14  877
huh: Zajimave, ale treba ve visual studiu to nefunguje. Jde to i jinak aniz bys spolehal, ze se nejake promenne naalokuji za sebou...
huh huh 2.9.2012 21:38  876
Sekory [875]: no reference je v zasade ukazatel, takze pokud ti ji prekladac nezoptimalizuje a dostanes se k nemu, tak to neni takovy problem:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i=1;
    int j=2;
    int& r = i;
    int* a[1];
    cout << r << endl;
    int** pr= a + 1;
    *pr = &j;
    cout << r << endl;
    j = 4;
    cout << r << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}

sekory Sekory The journey of thousand miles - starts with a single step. 2.9.2012 21:10  875
Schvalne, jestli nekdo z vas vi, jak zmenit referenci. Standardne zmenit po inicializaci nejde, ale existuje takovy "hack" jak zmenit jde. :)
bredy 30.7.2012 09:44  874
Často to používám z toho důvodu, abych skryl implementrační detaily v hlavičkách. Například pokud třída potřebuje nějaké další třídy, které nejsou potřeba pro ovládání té třídy (jsou potřeba jen pro její konstrukci), pak používám interface + implementace + továrnu.

interface definuje funkce, kterým lze objekt ovládat, implementace dědí interface a obsahuje vše, co je potřeba k zajištění činnosti objektu a továrna se stará o to, aby se dal objekt instanciovat bez nutnosti mít naincludované všechny definice pro přeložení třídy.
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 20:58  873
huh: Přesně tak, abstraktní bez implementace. Trochu mi to příjde jako interface v Javě (Javu teda moc neznám...). Každopádně díky.
huh huh 18.7.2012 20:31  872
Sekory [871]: Myslíš čistě virtuální (abstraktní), tj. bez implementace? Tak snad leda, pokud by mělo smysl vytvářet i jiné potomky, byť zatím má jen jednoho. (Druhá možnost je overengineering :-) )
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 18:46  871
K čemu se používá base class, která má všechny metody virtuální, pokud z dění jen jedna další třída, která ty metody implementuje? Nevidím k tomu důvod, ale narazil jsem na to.
sekory Sekory The journey of thousand miles - starts with a single step. 25.6.2012 13:58  870
Tak jsem se rozhodl, že budu používat Eclipse. Už jsem v tom něco malého dělal (v Javě teda) a případně to má člověk i pod Windowsi.
sekory Sekory The journey of thousand miles - starts with a single step. 24.6.2012 21:19  869
C++ IDE pod LinuxemJaké IDE na C++ byste doporučili pod Linux? Existuje toho celkem dost, což rozhodování moc neulehčí. Psát to v nějakém Editoru a pak to kompilovat z příkazové řádky se mi zdá poněkud nevyhovující (ačkoli určitě to má svoje výhody).
bredy 29.3.2012 11:14  867
huhJá jsem taky mimo. Mě jen děsíc výčet featur, které tam mají. Pro ně je to samozřejmě jednoduší, protože spousta šifer má společný základ. Ale i beztak z toho vzniká moloch a nafukuje to kód.

Nicméně se na to podívám. O Crypto++ jsem už taky zavadil.

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt