![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
Alatke vezane za temu | Vrste prikaza |
![]() |
#1 |
Starosedelac
Član od: 22.10.2005.
Lokacija: Tivat
Poruke: 1.767
Zahvalnice: 77
Zahvaljeno 231 puta na 166 poruka
|
![]()
Nešto sam malo uzeo da čačkam oko Linuxa da vidim šta sve tamo mogu da radim, i rekoh ajd da vidim kakko se tamo programira. Do sada sam bio koristio Borland developer, i poslije nekraćeg *****avanja u osnovi shvatim kako se tmao kompajlira.
I sad uzmem da probam da vidim hoće li mi kod koji je radio preko borlanda raditi ovdje. Osnovni kratkiu programi rade. Ali ovaj neće: Kod:
#include<iostream> using namespace std; class complex{ private: float Re, Im; public: complex(float a=0, float b=0):Re(a), Im(b){} ~complex(){} complex(complex &kop):Re(kop.Re), Im(kop.Im){} void prikazi_br(){ if(Im>=0) cout<<Re<<"+i"<<Im<<endl; else cout<<Re<<Im<<"i"<<endl; } friend complex operator-(complex, complex); complex& operator-=(complex); }; complex operator-(complex A, complex B){ return complex(A.Re-B.Re , A.Im-B.Im); } complex& complex::operator-=(complex A){ *this=*this-A; return *this; } main() { complex A(2, 3), B(3); complex C(A); complex D(2, -3); D=A-B; cout<<"A je: "; A.prikazi_br(); cout<<"B je: "; B.prikazi_br(); D=A-B; cout<<"D=A-B="; D.prikazi_br(); cout<<"A je 3, B je 2-1i. A-B je"; A=D=3-complex(2, -1); D.prikazi_br(); A.prikazi_br(); D=3-2; D.prikazi_br(); A.prikazi_br(); getchar(); } Otvorim konzolu i ukucam i dobijem: Kod:
~$ g++ -Wall zad.cpp -o prog1 zad.cpp: In function ‘complex operator-(complex, complex)’: zad.cpp:18: error: no matching function for call to ‘complex::complex(complex)’ zad.cpp:9: note: candidates are: complex::complex(complex&) zad.cpp:7: note: complex::complex(float, float) zad.cpp: At global scope: zad.cpp:24: warning: ISO C++ forbids declaration of ‘main’ with no type zad.cpp: In function ‘int main()’: zad.cpp:38: error: no matching function for call to ‘complex::complex(complex)’ zad.cpp:9: note: candidates are: complex::complex(complex&) zad.cpp:7: note: complex::complex(float, float) zad.cpp:38: error: initializing argument 1 of ‘complex operator-(complex, complex)’ zad.cpp:38: error: no matching function for call to ‘complex::complex(complex)’ zad.cpp:9: note: candidates are: complex::complex(complex&) zad.cpp:7: note: complex::complex(float, float) zad.cpp:38: error: initializing argument 2 of ‘complex operator-(complex, complex)’ |
![]() |
![]() |
![]() |
#2 |
Veteran
|
![]()
Pa nisi deklarisao operator '=', probaj sa time... Mislim i da za operator minus treba da prosledjujes promenljive po referenci. Takodje deklarisi i konstruktor kopiranja ili ga stavi pod private ako neces da se koristi. Na windowsu je mnogo stvari dozvoljeno, koje inace ne bi trebale da budu. Posle se ljudi pitaju otkud toliki bugovi
![]() |
![]() |
![]() |
![]() |
#3 |
Starosedelac
Član od: 22.10.2005.
Lokacija: Tivat
Poruke: 1.767
Zahvalnice: 77
Zahvaljeno 231 puta na 166 poruka
|
![]()
Zar nije konstruktor kopiranja ovo:
complex(complex &kop):Re(kop.Re), Im(kop.Im){} Kako mogu vratiti po referenci kada će ta promjenljiva koju vraćam biti obrisana poslije završetka funkcije. Poprilično sam zarđao sa C++ naprednim konceptima, ali sam poprilično siguran u to. EDIT: Ah da našao sam grešku. Treba: complex(const complex &kop):Re(kop.Re), Im(kop.Im){} umjesto: complex(complex &kop):Re(kop.Re), Im(kop.Im){} majčicu mu cjepidlačku. Hmm. Kad si tu. Da neznač neki fin Linux program za programiranje vizuelinh aplikacija u C++. Borland je to zvao VCL aplikacije? |
![]() |
![]() |
![]() |
#4 |
Kekule Mekule
|
![]()
Imas Code::Blocks i Eclipse pa uzmi koji ti vise odgovara... Po meni je bolje Code::Blocks jer Eclipse nije native za cpp vec za javu cini mi se.
|
![]() |
![]() |
![]() |
#5 |
Veteran
|
![]()
Code blocks, mislim da je to najbolji izbor
![]() |
![]() |
![]() |
![]() |
#6 |
Starosedelac
Član od: 22.10.2005.
Lokacija: Tivat
Poruke: 1.767
Zahvalnice: 77
Zahvaljeno 231 puta na 166 poruka
|
![]()
Dobro, ovaj makar može da iskompajlira konzolne programe. Ali imali negdje kakav jednostavan tutorijal kako da ga upotrebim za dizajniranje "vizuelnih" aplikacija. Sa dugmićima i to?
|
![]() |
![]() |
![]() |
#7 |
Član
Član od: 29.7.2006.
Poruke: 248
Zahvalnice: 32
Zahvaljeno 44 puta na 27 poruka
|
![]()
Code::Blocks (a ni Eclipse, cini mi se) nema ugradjen resource editor za WinAPI, ako si na to mislio. Postoje neke samostalne varijante, kao sto je na primer ResEd koji bi trebao da uzadovolji sve osnovne potrebe za rad sa resursima.
EDIT: Tek sad vidim da radis pod Linuxom. Kako god, radi se o malom programcicu pa ce valjda lepo raditi sa Wineom. Sto se tice tutoriala, imas ovde jedan koji sasvim dobro objasnjava osnove WinAPI-ja. Poslednja ispravka: kish (27.1.2009 u 21:51) |
![]() |
![]() |
![]() |
#8 | |
Starosedelac
Član od: 27.12.2005.
Lokacija: Pančevo
Poruke: 1.305
Zahvalnice: 66
Zahvaljeno 438 puta na 328 poruka
|
![]() Citat:
Ako se opredeliš za programiranje GUI aplikacija pomoću GTK+ kontrola, možeš koristiti Anjuta IDE + Glade za dizajniranje dijaloga, ako se opredeliš za Qt kontrole, onda koristi KDevelop i alate koje dolaze s njim. Možeš da koristiš i pomenute Eclipse i Code::Blocks. |
|
![]() |
![]() |
![]() |
#9 |
Starosedelac
Član od: 22.10.2005.
Lokacija: Tivat
Poruke: 1.767
Zahvalnice: 77
Zahvaljeno 231 puta na 166 poruka
|
![]()
Znam ja za sve te silne kombinacije, ali nigdje ne mogu da nađem kršteno upustvo kako da povežem sve te programe, ili kakav kraći tutorial o povezivanju.
Recimo QT Designer koji sam nabavio i jedino što iz njega mogu dobiti je ui koi nemogu nigdje učitat. Nego nešto sam kodovao u QT (editor pa kompajliranje), ali sad mi izbacuje jednu jopet nelogičnu grešku. Kod je ovakav: Kod:
#include <QApplication> #include <QFont> #include <QPushButton> #include <QtGui> int main(int argc, char* argv[]) { QApplication app(argc, argv); QVBoxLayout *vertikalni = new QVBoxLayout; QHBoxLayout *hor = new QHBoxLayout; QLabel *plus = new QLabel("+"); QLabel *rezult = new QLabel("Saberi"); QLineEdit *Akut = new QLineEdit; QLineEdit *Bkut = new QLineEdit; QPushButton *dugme = new QPushButton; vertikalni->addWidget(hor, Qt::AlignTop); vertikalni->addWidget(rezult, Qt::AlignTop); vertikalni->addWidget(dugme, Qt::AlignTop); hor->addWidget(Akut); hor->addWidget(plus); hor->addWidget(Bkut); plus->show(); return app.exec(); } Kod:
$ qmake -project $ qmake $ make Kod:
main.cpp: In function ‘int main(int, char**)’: main.cpp:16: error: no matching function for call to ‘QVBoxLayout::addWidget(QHBoxLayout*&, Qt::AlignmentFlag)’ /usr/local/Trolltech/Qt-4.4.3/include/QtGui/qboxlayout.h:81: note: candidates are: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment) make: *** [main.o] Error 1 QHBoxLayout*& ajd da je samo * pa da kažem da je pokazivač. Ali koji mu je ovo antrak? Inače nešto tako su radili i ovdje: http://doc.trolltech.com/4.4/tutoria...ook-part2.html |
![]() |
![]() |
![]() |
Bookmarks sajtovi |
|
|
![]() |
||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Pitanje u vezi sa hard diskom | Baalzamon | Nosači podataka | 19 | 18.1.2008 2:17 |
Farbanje kućišta? | bobzilla | Modovi | 87 | 11.9.2007 11:14 |
Pitanje u vezi sa plocom ASUS P4PE2-X | gravedigger032 | Osnovne komponente | 3 | 12.3.2007 3:02 |
Pitanje u vezi sa kupovinom - hitno | daneboy | Šta da kupim? | 4 | 25.1.2007 0:36 |
U vezi sa "Ko je online" | holodoc | Forum o forumu | 11 | 29.9.2006 6:01 |