Моя задача: Создать класс Person with char * name и int age. Реализовать contructor, используя динамическое распределение памяти для переменных, деструктор, функцию init и функцию функции show. Затем преобразуйте этот класс в файл заголовка и cpp и реализуйте в другой программе. Ok так вот мой класс Person:Cpp некоторые основные проблемы
#include <iostream>
using namespace std;
class Person {
char* name;
int age;
public:
Person(){
int size=0;
cout << "Give length of char*" << endl;
cin >> size;
name = new char[size];
age = 0;
}
Person::~Person(){
cout << "Destroying resources" << endl;
delete [] name;
delete take_age();
}
friend void show(Person &p);
int* take_age(){
return &age;
}
char* take_name(){
return name;
}
void init(char* n, int a) {
name = n;
age = a;
}
};
void show(Person *p){
cout << "Name: " << p->take_name() << "," << "age: " << p->take_age() << endl;
}
int main(void) {
Person *p = new Person;
p->init("Mary", 25);
show(p);
system("PAUSE");
return 0;
}
И теперь с частью заголовка/реализации:
- мне нужно ввести конструктор в файлах заголовка/реализации? Если да - как?
- моя функция show() - это дружественная функция. Должен ли я как-то это учитывать?
Я уже не смог вернуть эту задачу на экзамен, но все же хотел бы знать, как ее реализовать.
Если у вас его еще нет, вам следует рассмотреть возможность получения одной из книг C++ для начинающих, перечисленных в [The Definitive C++ Book Guide and List] (http://stackoverflow.com/questions/388242/the -definitive-с-книга-гид-и-лист). –
Извините, если это звучит суровым, но ваш код действительно показывает, что вы совершенно не знаете, что происходит. Это просто факт. Вам действительно нужно что-то прочитать. –
C++ не называется cpp. Препроцессор C называется cpp. – hobbs