PDA

Visualizza la versione completa : [C++]Problema Get-Set


Luc@s
23-03-2003, 11:39
Ho questa lib mia:

// files : head.h
#include <string>
#ifndef HEAD_H
#define HEAD_H

// la struttura delle persona
class Persona
{
private:
char* nome;// il nome
char* cognome;//il cognome
int anno;//anno
public:
Persona(char*, char*, int);
Persona();
char getNome();
char getCognome();
char setNome(char* nm);
char setCognome(char* cgn);
int setAnno();
int getAnno(int ann);
};
#endif

// files : Princ.cpp
#include <iostream>
#include <string>
#include "head.h"

using namespace std;

void main()
{
cout<<"\n";
}

// ----------------------------------------
// Definizioni
// ----------------------------------------
// costruttore vuoto
Persona::Persona()
{
}
//costruttore con argomenti
Persona::Persona(char* nm, char* cgn, int ann=0)
{
nome = nm;
cognome = cgn;
anno = ann;
}
// ritorna il nome
char Persona::getNome()
{
std::cout << nome;
return nome;
}
// ritorna il cognome
int Persona::getAnno()
{
std::cout << anno;
return anno;
}
// ritorna l'anno di nascita
char Persona::getCognome()
{
std::cout << cognome;
return cognome;
}
// setta il nome
char Persona::setNome(char* nm)
{
nome = nm;
return nome;
}
// setta il cognome
int Persona::setAnno(int ann)
{
anno = ann;
return anno;
}
// setta l'anno di nascita
char Persona::setCognome(char* cgn)
{
cgn = cognome;
return cognome;
}

Ma mi da:

c:\documents and settings\admin\desktop\gest\princ.cpp(31) : error C2440: 'return' : cannot convert from 'char *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\documents and settings\admin\desktop\gest\princ.cpp(35) : error C2511: 'getAnno' : overloaded member function 'int (void)' not found in 'Persona'
c:\documents and settings\admin\desktop\gest\head.h(8) : see declaration of 'Persona'
c:\documents and settings\admin\desktop\gest\princ.cpp(43) : error C2440: 'return' : cannot convert from 'char *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\documents and settings\admin\desktop\gest\princ.cpp(49) : error C2440: 'return' : cannot convert from 'char *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\documents and settings\admin\desktop\gest\princ.cpp(53) : error C2511: 'setAnno' : overloaded member function 'int (int)' not found in 'Persona'
c:\documents and settings\admin\desktop\gest\head.h(8) : see declaration of 'Persona'
c:\documents and settings\admin\desktop\gest\princ.cpp(61) : error C2440: 'return' : cannot convert from 'char *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Ma nn capisco cosa sbaglio?
Sono semplici get e set:cry:

Dwenegar
23-03-2003, 14:06
Sei gnucco. Controlla il return type dichiarato dei metodi e gli argomenti che passi a setAnno e getAnno. Prima di fare questo genere di domande controlla quello che hai scritto.

Luc@s
23-03-2003, 14:15
risolto codi va bene?

// files : Princ.cpp
#include <iostream>
#include <string.h>
#include "head.h"

using namespace std;

void main()
{
cout<<"\n";
}

// ----------------------------------------
// Definizioni
// ----------------------------------------
// costruttore vuoto
Persona::Persona()
{
}
// ritorna il nome
const char *Persona::getNome()
{
return nome;
}
// ritorna il cognome
const int Persona::getAnno()
{
return anno;
}
// ritorna l'anno di nascita
const char *Persona::getCognome()
{
return cognome;
}
// setta il nome
const char *Persona::setNome(char* nm)
{
*nome = *nm;
return nome;
}
// setta il cognome
const int Persona::setAnno(int ann)
{
anno = ann;
return anno;
}
// setta l'anno di nascita
const char *Persona::setCognome(char* cgn)
{
*cgn = *cognome;
return cognome;
}

Dwenegar
23-03-2003, 14:19
Se non ti da errori e fa quello che vuoi che faccia va bene.

Loading