第11章 继承与接口

1. 默认的构造函数



2.RTTI (dynamic_cast 和 typeid) 知识扩展 143页,没看懂,继续查查



143 页的扩展知识也没有看懂。



3.点(.)问号(?)还有(. *) ( ::)不能进行运算符重载


运算符重载一般采用 成员函数和友元函数形式,都能访问私有成员。


关键字 operator,后面接一个运算符。


这是面向对象部分的内容:
inline 是内联函数关键字,用来告诉编译器下面这个函数是内联函数,在编译期间对语句进行扩展,而不是在运行时进行函数调用。
operator++() 这是一个函数,跟普通函数的定义是一样的,这个函数的名字叫 operator++,后面{}内的是这个函数具体执行代码
:: 这个是命名空间指示符,用来标明下面出现的(成员或函数)是声明在哪个命名空间中的


4,inline 内联类是干嘛的啊?145页


5,什么是浅拷贝,什么是深拷贝 

默认拷贝构造函数或者赋值运算符执行的是浅拷贝,person1 = Person(person2); person1 = person2;

 把person2 的内容复制给person1。

但是如果person2里面的数据域里面有一个指向其他对象的指针,那么只是简单的复制指针保存的地址,而不是对象的内容。那么问题就是两个person对象都会指向同一个地方。这就是浅拷贝的意思。


深拷贝是要自己构造一个拷贝构造函数 

Person::Person(Person &person)
{
  id = person.id;
  Date *p = person.getBirthDate();
  birthDate = new Date(*p);
}


重写一个新的拷贝构造函数,在这里面会重新生成一个Date对象,复制过来的DATE在新的对象里面。而不是浅拷贝那样只是复制一个地址,让两个新对象指向同一个date对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值