[ kragujevcanin @ 17.08.2009. 17:35 ] @
Ovo je zadatak (visual c++)
Code:

#include <stdio.h> //zaglavlje
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include<time.h>

class vektor { //definicija klase
public:
vektor();
void show();
friend vektor operator+(vektor, vektor);
int vec[10];
};


vektor operator+ (vektor a, vektor b) //operator sabirahnja vektora
{
    vektor temp;
    for (int j=0; j<10; j++) temp.vec[j]=a.vec[j] + b.vec[j];
    return temp;

vektor::vektor(); //konstruktor

 srand ( time(NULL) );
 for (int i=0; i<10; i++)
 {
     vektor.vec[i] = rand()%10+1; //GRESKA BROJ 1 syntax error : missing ';' before '.' (DVBA PUTA U ISTOM REDU)
 }
 srand ( time(NULL) );
}


void vektor::show() //prikazuje vektor na ekranu  GRESKA BROJ 2  'show' : local function definitions are illegal
{
    cout<< "nasumicno generisani vektor-\t";
    for (int i=0; i<10; i++) cout<< vec[i];
}

void main() //kreira dva vektora pa drugi dodaje prvom.
{                                                                      //GRESKA BROJ TRI  'MAIN' : local function definitions are illegal
vektor prvi, drugi
prvi.show;
prvi=prvi=drugi
prvi.show();
}


Sve izgleda jednostavno (realno i jeste) ali mi prijavljuje GRESHKE.

[Ovu poruku je menjao X Files dana 17.08.2009. u 18:51 GMT+1]
[ Goran Arandjelovic @ 17.08.2009. 18:51 ] @
Ajmo redom:

Prvo, što se tiče korekcije tvog koda da bi samo uspeo da kompajliraš:
1. Definicija f-je operator+ nema završnu vitičastu zagradu.
2. Skloni ";" iz prvog reda definicije konstruktora.
3. U definicji konstruktora ne treba koristiti vektor.vec, već samo vec zato što iz bilo koje f-je klase vektor pristupaš direktno poljima te klase, a i nigde ne postoji instanca klase koja se zove "vektor".
4. U main f-ji, prva tri reda nisu dobra. U prvom i u trećem si zaboravio ";" na kraju reda, a u drugom pozivaš f-ju show(), zaboravio si zagrade. Dakle, kao što si uradio u 4. redu. main f-ja po Standardu treba da vraća int, a ne void, ali to je manje bitno.


Drugo:
1. Tvoja klasa nema konstruktor kopije, operator=, destruktor. To ti treba da bi se kopiranja/uništavanje obavljalo tačno onako kako treba ako budeš rešio da zameniš polje vec nečim pametnijim.
2. Polje vec bi trebalo da bude privatno, a da obezbediš javne metode za čitanje i pisanje u njega. Takođe, ograničen si na vektor dužine 10, pa razmisli o dinamičkoj alokaciji pošto je ovako tvoj vektor poprilično beskoristan.
3. operator+ treba da ima kao argumente reference na vektore (tačnije reference na konstantne vektore), a ne da budu prosleđeni po vrednosti. Unutar operatora uskladi sabiranje sa eventualnom dinamičkom alokacijom (ako rešiš), a ne samo do 10 elemenata. Vodi računa o tome da vektori mogu da budu različitih dužina.
4. Takođe, vodi računa da se vrši konverzija u srand f-ji iz time_t u unsigned int ili tako nešto.

Po želji dodaj metode za rad sa vektorom... jer je ovako inače to poprilično "gola" klasa.
Možda sam nešto izostavio, jer nisam testirao tvoj kod.
[ kragujevcanin @ 17.08.2009. 18:56 ] @
Hvala!!
[ milkinizz @ 20.08.2009. 11:35 ] @
Caos,
spremam C++ i nasla sam ovaj tvoj zadatak pa ako nije postavi verziju koja radi-mislim da bi mi to pomoglo.
Veliki pozdrav od Kragujevcanke