c+4语言程序设计(第四版.pptVIP

  • 3
  • 0
  • 约1.14万字
  • 约 106页
  • 2019-09-06 发布于广东
  • 举报
* void MyDate::print() { coutConstructed object: name month-day-yearendl; } void main() { MyDate Tower(Tower,1980,10,24); //创建对象Tower MyDate Jack=Tower; //利用已经创建的对象Tower拷贝构造新 //的对象Jack,等效于: MyDate Jack(Tower); coutOK!!endl; } * 请思考一下运行结果会是什么呢? 主程序中创建了两个对象Tower和Jack,通常认为会有调用两次构造函数和两次析构函数,但事实并非如此,其运行结果为: Constructed object: Tower 10-24-1980 OK!! Destructed object: Tower 10-24-1980 Destructed object: Tower 10-24-1980 * 这是什么原因呢? Tower是通过普通带参数的构造函数初始化,Jack通过拷贝方式初始化,只是由于没有定义拷贝构造函数,由C++提供默认的拷贝构造函数,这种方式便是浅拷贝。通过程序不难看出:浅拷贝构造函数仅拷贝对象,而不拷贝对象资源。也就是说,浅拷贝的两个对象拥有同一个资源——这就是为什么创建了两个对象却只

文档评论(0)

1亿VIP精品文档

相关文档