c++primer要点-面向对象程序设计

1.不论从基类派生出来多少个派生类,对于每个静态成员来说都只存在唯一实例,静态成员遵循通用的访问控制规则。

2.final可以防止继承的发生。

3.dynamic_cast可以将基类型转换为派生类型,将在运行时进行安全检查。如确定安全,也可以用static_cast

4.覆盖继承虚函数,需保证形参类型完全一致;返回类也要匹配,例外是返回的是类本身的指针或引用,只不过要求B到D的类型转换是可访问的。

5.override标记覆盖虚函数,编译器将检查,只有虚函数才能被overide覆盖;final指定某个函数不能被覆盖

6.某次函数的默认实参由本次调用的静态类型决定。

7.一个类有三种用户:类的实现者、派生类成员、普通用户。普通用户只能访问公有成员,派生类能访问公有和保护成员。

  派生访问说明符对于派生类的成员能否访问基类成员没有影响,目的是控制派生类的用户(派生类的普通用户、派生类的派生类)对基类成员的访问权限。如公有继承使基类的公有和保护成员成为派生类的公有成员。

  对于代码中某个给定节点来说,如果基类的公有成员是可访问的,则派生类向基类的类型转换也是可访问的。

  对基类的访问权限由基类本身控制,即使派生类的基类部分也是如此,所以基类的友元可以访问基类内嵌在派生类中的部分。

  using 声明可改变成员的可访问性,访问权限由改using之前的访问说明符来决定。

8.派生类的作用域嵌套在基类作用域内;声明在内层作用域的函数并不会重载声明在外层作用域的函数,如果出现同名,则基类成员被隐藏。

9.默认情况下,基类默认构造函数初始化派生类对象的基类部分。如要用拷贝(或移动),必须在派生类构造函数初始值列表中显示使用。

10.using声明可用来继承构造函数。通常情况下,using只是令某个名字在当前作用域可见。这里,将使编译器产生代码。构造函数的using声明不会改变访问级别,不能指定explicit或constexpr。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>