「Person」という Person クラスのコンストラクターがあります。次のようになります。
Person(const char * their_name, const char * email, int day, int month, int year)
: name(0), email_address(0), birthday(day, month, year) {
name = new char [strlen(their_name)+1];
strcpy_s(name, strlen(their_name) +1, their_name);
email_address = new char[strlen(email) + 1];
strcpy_s(email_address, strlen(email) + 1, email);
cout << "\nPerson(...) FIRST CONSTRUCTOR CREATING: "<<name<<"\n";
printOn(cout);
}
このクラスにはプライベート変数があります。
private:
char * name;
char * email_address;
Date birthday;
メインで次のようにコンストラクターをテストすると、1 エラーまたは何かがオフになると思います。
Person *p1 = new Person("Sarah", "iam@awesome.com", 2,2,1000);
これは私のコンソールに出力されます:
Person(...) FIRST CONSTRUCTOR CREATING: Sarah
ààà
コンストラクターの実行後に a が出力される理由がわかりません...誰でも問題を確認できますか?
編集: 私の printOn メソッド
/*print person on output stream o*/
virtual void printOn(ostream & o) const {
//print person
o << "………";
}
およびオーバーライドされた << 演算子
ostream & operator<<(ostream & ostr, const Person & p) {
p.printOn(ostr);
return ostr;
}