RichardUSTC

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年3月19日

摘要: 通常来说,需要实现析构函数的类都需要实现拷贝构造函数和拷贝赋值。如果没有实现自定义的拷贝构造用函数和拷贝赋值,那么编译器会自动实现它们。在编译器的实现里,如果成员是builtin类型,那么就直接赋值,如果是类类型的,那么就会调用类的相应函数来实现。特别要注意的是,如果是指针,那么只拷贝指针的值,即使是类指针类型也不例外。这就是所谓的浅拷贝。这里有一篇文章Shallow vs. deep copying介绍地更详细。拷贝构造函数拷贝构造函数的形式class Foo{ Foo(); Foo(const Foo&);};拷贝构造函数的参数一般是const限定的引用,也可以使用非const.. 阅读全文
posted @ 2013-03-19 23:09 RichardUSTC 阅读(415) 评论(0) 推荐(0) 编辑