|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
|
[C++] Header e direttiva using
Sto progettando una classe Persona.
Ho il seguente header: Codice:
#ifndef PERSONA_H
#define PERSONA_H
#include <iostream>
using namespace std;
class Persona
{
friend istream& operator >> (istream& in, Persona& P);
friend ostream& operator << (ostream& out, const Persona& P);
public:
Persona();
Persona(const Persona &);
Persona(const string, const string, int);
const Persona& operator = (const Persona&);
const string getN() const { return Nome; };
const string getC() const { return Cognome; };;
const int getE() const { return Eta; };
~Persona();
private:
string Nome;
string Cognome;
int Eta;
};
#endif
Codice:
#include <iostream>
#include "Persona.h"
using namespace std;
Persona::Persona() : Eta(0) {}
Persona::Persona(const Persona & P) : Nome(P.getN()), Cognome(P.getC()), Eta(P.getE()) {}
Persona::Persona(const string N, const string C, int E) : Nome(N), Cognome(C), Eta(E) {}
Persona::~Persona()
{
Nome.clear();
Cognome.clear();
}
const Persona& Persona::operator = (const Persona& P)
{
if(this!=&P)
{
Nome = P.getN();
Cognome = P.getC();
Eta=P.getE();
return *this;
}
}
ostream& operator << (ostream& out, const Persona& P)
{
out << P.Nome << " " << P.Cognome << " " << P.Eta << " anni" << endl;
return out;
}
istream& operator >> (istream& in, Persona& P)
{
cout << "Inserire Nome: "; getline(in,P.Nome);
cout << "Inserire Cognome: "; getline(in,P.Cognome);
cout << "Inserire età: "; in >> P.Eta;
return in;
}
Codice:
using namespace std; Come posso rimuovere la direttiva adattando il codice di conseguenza? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Nell'header metti std:: davanti a tutte le classi del namespace standard
Codice:
Persona(const std::string, const std::string, int); Codice:
Persona(const std::string &, const std::string &, int);
const std::string & getN() const { return Nome; };
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
|
D'accordo, grazie mille
Perché le reference? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
|
Ok grazie ancora
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:37.




















