Newsgroup: it.comp.lang.c++
Titolo: Richiesta di aiuto

Salve a tutti fra qualche giorno ho un esame universitario e stò
impazzendo perchè nn riesco a far girare questo semplicissimo
programma ma nn capisco dove sbaglio, ringrazio anticipatamente tutti
quelli che vorranno darmi una mano.....
Programma:
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Employee
{
      public:
             Employee();
             Employee(string n, string c, double s);
             void set_name(string x);
             void set_surname(string y);
             void set_salary(double z);
             void set_friend(new Employee);
             string get_name() const;
             string get_surname() const;
             double get_salary() const;
             int get_number_friend() const;
             Employee* get_friend() const;
      private:
             string name;
             string surname;
             double salary;
             vector<Employee*> friend;
};
#endif
----------------------------------------------------------------------
#include <iostream>
#include <string>
#include <vector>
#include "Employee.h"
using namespace std;
Employee::Employee()
{
    name = " ";
    surname = " ";
    salary = 0;
    friend = NULL;
}
Employee::Employee(string n, string c, double s)
{
    name = n;
    surname = c;
    salary = s;
    friend = NULL;
}
void Employee::set_name(string x)
{
    name = x;
}
void Employee::set_surname(string y)
{
    surname = y;
}
void Employee::set_salary(double z)
{
    salary = z;
}
void Employee::set_friend(new Employee)
{
    friend.push_back(new Employee);
}
string Employee::get_name() const
{
    return name;
}
string Employee::get_surname() const
{
    return surname;
}
double Employee::get_salary() const
{
    return salary;
}
int Employee::get_number_friend() const
{
    int i;
    if(friend == NULL)
    cout<<"None\n";
    else
    for(i=0;i<friend.size();i++);
    {
       return i;
    }
}
Employee* Employee::get_friend() const
{
    if(friend==NULL)
    cout<<"None\n";
    else
    for(i=0;i<friend.size();i++)
    {
       return friend[i];
    }
}
--------------------------------------------------------------
#include <iostream>
#include "Employee.h"
using namespace std;
int main
{
    Employee alex("Alessandro","Amati",1800);
    Employee valentina("Valentina","Amati",1800);
    Employee enrico("Enrico","Cipriano",3000);
    alex.set_friend("Giacomo","Parisi",5000);
    alex.set_friend("Ilir","Xaka",500);
    cout<<"Il numero di amici di Alex e':"<<"\n";
    alex.get_number_friend();
    cout<<"Gli amici di Alessandro sono:"<<"\n";
    alex.get_friend();
    cout<<"Ugualmente amici sono:"<<"\n";
    cout<< valentina <<"\n";
    cout<< enrico <<"\n";
    system("PAUSE");
    return EXIT_SUCCESS;
}

     system("PAUSE");
Questo non e' C++ standard. Non ho idea se funzioni o come.
Senza offesa: se l'esame che hai tra qualche giorno e' di C++ o di 
programmazione, valuterei di rimandarlo.
  bye
	av.

cout<< enrico <<"\n";
Qui immagino tu volessi stampare i nomi di tali oggetti... ed ancora una 
volta devi chiamare il metodo name associato:
cout << valentina.get_name() << "\n";
cout << enrico.get_name() << "\n";
Ciao
==================================================
Versione Funzionante:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Employee
{
      public:
             Employee();
             Employee(string n, string c, double s);
             void set_name(string x);
             void set_surname(string y);
             void set_salary(double z);
             void set_amico(Employee*);
             string get_name() const;
             string get_surname() const;
             double get_salary() const;
             int get_number_amico() const;
             void get_amico() const;
      private:
             string name;
             string surname;
             double salary;
             vector<Employee*> amico;
};
Employee::Employee()
{
    name = " ";
    surname = " ";
    salary = 0;
};
Employee::Employee(string n, string c, double s)
{
    name = n;
    surname = c;
    salary = s;
};
void Employee::set_name(string x)
{
    name = x;
};
void Employee::set_surname(string y)
{
    surname = y;
};
void Employee::set_salary(double z)
{
    salary = z;
};
void Employee::set_amico(Employee* e)
{
    amico.push_back(e);
};
string Employee::get_name() const
{
    return name;
};
string Employee::get_surname() const
{
    return surname;
};
double Employee::get_salary() const
{
    return salary;
};
int Employee::get_number_amico() const
{
    int i;
    if(amico.size() == 0)
       cout<< "Nessuno elemento" << endl;
    else
    return amico.size();
};
void Employee::get_amico() const
{
    if(amico.size() == 0)
       cout << "Nessun elemento" << endl;
    else
    for(int i = 0; i < amico.size();i++)
       cout << amico[i]->get_name() << " " << amico[i]->get_surname() << " " 
<< amico[i]->get_salary() << endl;
}
int main ()
{
    Employee alex("Alessandro","Amati",1800);
    Employee valentina("Valentina","Amati",1800);
    Employee enrico("Enrico","Cipriano",3000);
    alex.set_amico(new Employee("Giacomo","Parisi",5000));
    alex.set_amico(new Employee("Ilir","Xaka",500));
    cout << "Il numero di amici di Alex e': " << alex.get_number_amico() << 
endl;
    cout <<"Gli amici di Alessandro sono: "<<"\n";
    alex.get_amico();
    cout<< "Ugualmente amici sono:" << endl;
    cout<< valentina.get_name() <<"\n";
    cout<< enrico.get_name() <<"\n";


 };
Questo qui va corretto in:
int Employee::get_number_amico() const
{
    return amico.size();
};
Infatti non serve considerare a parte il caso in cui non ci sono elementi 
visto che in tal caso amico.size() vale 0.
Ciao