[ azzpoz @ 30.10.2013. 16:50 ] @
Code:
#include <iostream>
using namespace std;

class osoba
{
     int brojID;
public:
     osoba()
{
          cout<<"\n Upisi broj: ";
          cin>>brojID;
}

     ~osoba(){cout<<" GOTOVO "<<endl;}
};

int main()
{

          osoba ja;  // radi Upisi broj
            
          osoba Elite();   //ne radi Upisi broj
       // koja je razlika u tome sa zagradom i bez zagrade


system("pause>0"); return 0;
}

Da li zagrade koristimo samo kada trebamo navoditi neke parametre?

[Ovu poruku je menjao azzpoz dana 30.10.2013. u 20:53 GMT+1]
[ X Files @ 30.10.2013. 21:11 ] @
Citat:

osoba Elite(); //ne radi Upisi broj

Ovo zapravo nije kreiranje objekta (što si želeo, a inače se postiže eliminisanjem zagrada), već deklarisanje funkcije Elite(), koja nema argumente, a koja je tipa "osoba". Zato se konstuktor i ne izvršava.


[ azzpoz @ 30.10.2013. 22:06 ] @
Citat:
X Files: Ovo zapravo nije kreiranje objekta (što si želeo, a inače se postiže eliminisanjem zagrada), već deklarisanje funkcije Elite(), koja nema argumente, a koja je tipa "osoba". Zato se konstuktor i ne izvršava.


Da li to znači da ako kreiramo objekat bez unaprijed poznatih parametara, ne treba navoditi zagradu.
A zagradu s parametrima unutar nje, koristimo kada su nam ti parametri poznati i kada napravimo konstruktor da dozvoljava kreiranje na taj način, kao npr. osoba Elite(1007);

Code:

osoba::osoba(int br = 1)
{
      brojID = br;
}


Još uvijek sam u fazama učenja programiranja, pa bih želio što bolje razmjeti "sitne/osnovne" pojmove o tome!!!
[ Burgos @ 30.10.2013. 23:04 ] @
Ako kreiraš objekat i želiš da pozoveš konstruktor bez argumenata (ili sa svim argumentima sa podrazumevanom vrednošću), ne koristiš zagrade.

C++11 standard uvodi uniformnost prilikom inicijalizacije i sprečava zabunu, tako što koristi { i } za inicijalizaciju. Ako imaš kompajler sa podrškom za C++11, počni sa tim.

http://ideone.com/8GZ9tl


Code:
#include <iostream>
using namespace std;

class osoba
{
     int brojID;
public:
     osoba()
    {
          cout << "osoba::osoba()" << endl;
    }
    
    osoba(int br)
    {
          cout << "osoba::osoba(int)" << endl;
    }

     ~osoba(){cout << "osoba::~osoba() " <<endl;}
};

int main()
{

          osoba ja{1};  
          osoba Elite{};
          
          return 0;
}



Code:
osoba::osoba(int)
osoba::osoba()
osoba::~osoba() 
osoba::~osoba() 


http://ideone.com/8GZ9tl