64,674
社区成员
发帖
与我相关
我的任务
分享
int main(){
Person person1(111,1970,5,3);
Person person2(person1);
cout<<"After creating person1 and person2"<<endl;
displayPerson(person1,person2);//copy person2 to person1
person2.getBirthDate()->SetYear(1963);
cout<<"\nAfter modifying person2's birthdate"<<endl;
displayPerson(person1,person2);
cout<<"\n"<<(person1.getBirthDate()==person2.getBirthDate());
Person person3(111,1970,5,3);
Person person4=person3;
//displayPerson(person3,person4);
cout<<'\n'<<(person3.getBirthDate()==person3.getBirthDate())<<endl;
return 0;
}
class Cls
{
public:
Cls(int i):m(new int(i)){}
~Cls(){delete m;}
Cls(Cls& c):m(new int(*c.m)){}
int* getm(){return m;}
private:
int* m;
};
int main()
{
Cls a(7);
Cls b(a);
bool ans1=a.getm()==b.getm(); // false。知道这里为什么不等了吧
bool ans2=*a.getm()==*b.getm(); // true
return 0;
}
#ifndef DATE
#define DATE
class Date{
public:
Date(int year,int NewMonth,int NewDay);
int GetYear();
void SetYear(int);
//~Date(){}
private:
int year;
int month;
int day;
};
#endif
//下面的执行在不同的文件,下同
#include"Date.h"
Date::Date(int NewYear,int NewMonth,int NewDay){
year=NewYear;
month=NewMonth;
day=NewDay;
}
int Date::GetYear(){return year;}
void Date::SetYear(int NewYear){year=NewYear;}
person类:
#include"Date.h"
class Person{
public:
Person(int id,int year,int month,int day);
Person(Person &person);
Person();
~Person();
int GetId();
Date *getBirthDate();//return the pointer of the object
private:
int id;
Date *birthDate;//the pointer of the object
};
//执行
#include"person1.h"
Person::Person(int id,int year,int month,int day){
this->id=id;
birthDate=new Date(year,month,day);
}
Person::Person(Person &person){
id=person.id;
Date *p=person.getBirthDate();
birthDate=new Date(*p);
}
Person::Person():
id(1),birthDate(0)
{}
int Person::GetId(){return id;}
Person::~Person(){delete birthDate;}
Date *Person::getBirthDate(){return birthDate;}
测试程序:
#include<iostream>
#include"person1.h"
using namespace std;
void displayPerson(Person &person1,Person &person2){
cout<<"\tperson1 id: "<<person1.GetId()<<endl;
cout<<"\tperson1 birth year: "<<
person1.getBirthDate()->GetYear()<<endl;
cout<<"\tperson2 id: "<<person2.GetId()<<endl;
cout<<"\tperson2 birth year: "<<
person2.getBirthDate()->GetYear()<<endl;
}
int main(){
Person person1(111,1970,5,3);
Person person2(person1);
cout<<"After creating person1 and person2"<<endl;
displayPerson(person1,person2);
person2.getBirthDate()->SetYear(1963);
cout<<"\nAfter modifying person2's birthdate"<<endl;
displayPerson(person1,person2);
cout<<"\n"<<(person1.getBirthDate()==person2.getBirthDate());
Person person3(111,1970,5,3);
Person person4;
person4=person3;
//displayPerson(person3,person4);
cout<<'\n'<<(person3.getBirthDate()==person4.getBirthDate())<<endl;
return 0;
}
有点小长~
int main(){
Person person1(111,1970,5,3);
Person person2(person1);
cout<<"After creating person1 and person2"<<endl;
displayPerson(person1,person2);
person2.getBirthDate()->SetYear(1963);
cout<<"\nAfter modifying person2's birthdate"<<endl;
displayPerson(person1,person2);
cout<<"\n"<<(person1.getBirthDate()==person2.getBirthDate());
Person person3(111,1970,5,3);
Person person4=person3;
//displayPerson(person3,person4);
cout<<'\n'<<(person3.getBirthDate()==person4.getBirthDate())<<endl;
person4=person3;
cout<<'\n'<<(person3.getBirthDate()==person4.getBirthDate())<<endl;
return 0;
}