c++ - Cin parameters to a custom class -
i have made custom class, person, holds info persons, job perspective.
class person { char* _name; char* _lname; char* _department; int _age, _salary; public: person(char* name, char* lname, char* department, int age, int salary); person(void); ~person(void); char* getfname(){return _name;}; char* getlname(){return _lname;}; char* getdepartment(){return _department;}; int getsalary(){return _salary;}; friend std::ostream &operator<<(std::ostream &cout, person &person); friend std::istream &operator>>(std::istream& is, person &person); }; what wish accomplish, stream info class, using cin, in form of comma separated char*.
the cin overload:
std::istream &operator>>(std::istream &is, person &person) { char* tmp=""; >> tmp; int i=0; int number=0; char** dataarray=new char*; dataarray[0]=""; while(tmp[i]!= '\0') { if(tmp[i]==',') { number++; dataarray[number]=""; } else dataarray+=tmp[i]; i++; } person._name=dataarray[0]; person._lname=dataarray[1]; person._department=dataarray[2]; person._salary=(int)dataarray[3]; person._age=(int)dataarray[4]; homecoming is; } however, programme stops, error, at;
>> tmp; i haven't manipulated istreams @ before, error due faulty reasoning. help appreciated.
you need specify size here:
char** dataarray=new char*; i think need:
char** dataarray=new char*[5]; you leak memory variable. seem manipulating elements of array if std::string, simple char arrays. need allocate , reallocate them. avoid issues utilize std::vector , std::string. errors have nil operator<< itself.
c++ operator-overloading istream
No comments:
Post a Comment