以下のコードを書いたのですが思い通りに動きません。。
デバッグを教えてほしいです。。
#include <iostream>
#include <string.h>
using namespace std;
class Person {
public:
Person();
Person::Person(const char *str);
Person::Person(const char str, int yy, const char pn);
Person(const Person &psn);
~Person() {
if (name != NULL) delete [] name; //メモリ解放
}
void init(const char *str, int yy,const char* pn); void SetName(const char *str); void SetAge(const int yy) { age = yy; } void SetPhonum(const char *pn) {strcpy(phonenum, pn);} const char *GetName() {return name;} int GetAge() {return age;} const char *GetPhoneNum() {return phonenum; }
private:
char *name;
int age;
char phonenum[15];
};
void Person::init(const char str, int yy, const char pn) {
name = new char[strlen(str) + 1];
strcpy(name, str);
age = yy;
strcpy(phonenum, pn);
}
Person::Person() {
name = NULL;
age = 0;
phonenum[0] = '¥0';
}
Person::Person(const char *str) {
init(str, 0, "");
}
Person::Person(const char str, int yy, const char pn) {
init(str, yy, pn);
}
Person::Person(const Person &psn) {
init(psn.name, psn.age, psn.phonenum);
}
void Person::SetNum(const char *str) {
if (name != NULL) delete [] name;
name = new char[strlen(str) + 1];
strcpy(name, str);
}
int main(int argc, const char * argv[])
{
Person Per("一太郎");
Per.SetAge(20);
Per.SetPhoneNum("012-1111-1111");
Person Per2("二太郎", 25, "012-1212-2222"); Person.Per3(Per2); Per3.SetName("三太郎"); Per3.SetAge(30); Person *p[] = { &Per, &Per2, &Per3 }; for (int i=0; i < 3; i++) { cout << "名前:" << p[i]->GetName() << "年齢:" << p[i]->GetAge() << "電話番号:" << p[i]->GetPhoneNum() << endl; } return 0;
}
宜しくお願いします。