Cpp some basic problems
- by DevAno1
Hello. My task was as follows :
Create class Person with char*name and int age. Implement contructor using dynamic allocation of memory for variables, destructor, function init and friend function show. Then transform this class to header and cpp file and implement in other program. Ok so I've almost finished my Person class, but I get error after destructor. First question is how to write this properly ?
#include <iostream>
using namespace std;
class Person {
char* name;
int age;
public:
int * take_age();
Person(){
int size=0;
cout << "Give length of char*" << endl;
cin >> size;
name = new char[size];
age = 0;
}
~Person(){
cout << "Destroying resources" << endl;
delete *[] name;
delete * take_age();
}
friend void(Person &p);
int * Person::take_age(){
return age;
}
void init(char* n, int a) {
name = n;
age = a;
}
void show(Person &p){
cout << "Name: " << p.name << "," << "age: " << p.age << endl;
}
};
int main(void) {
Person *p = new Person;
p->init("Mary", 25);
p.show();
system("PAUSE");
return 0;
}
And now with header/implementation part :
- do I need to introduce constructor in header/implementation files ? If yes - how?
- my show() function is a friendly function. Should I take it into account somehow ?
I already failed to return this task on my exam, but still I'd like to know how to implement it.