数组名是首个元素的地址0x123456
常量成员函数不能改变调用它的对象的内容(可以读取调用它的对象的数据成员,但不能写入新值)
常量对象,以及常量对象的引用或指针都只能调用常量成员函数
=default 编译器自动生成默认的构造函数
基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此。
基类希望派生类覆盖的函数通常定义为虚函数(virtual)
静态成员函数(所有对象共用一个)
public程序内可以访问 protect派生类可以访问 private 本类可以访问
因为派生列表中用了public ,所用公有的子类对象可以绑定到父类的引用或指针上。(derived to base类型转换)
动态绑定就是根据传入不同类型的实参决定函数体内调用实参类型的函数
基类的引用或指针调用一个虚函数是将发生动态绑定
一个const成员函数如果以引用的形式返回*this,那么他的返回类型将是常量引用(无法嵌入到动作序列中)
如果成员是const、引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初始值。
成员初始化顺序与他们类定义中的顺序一致
加上关键字virtual该函数执行动态绑定——可能绑定父类版本也可能调用子类版本
从派生类向几类的类型转换只针对引用和指针类型有效
父类向子类不存在隐式的类型转换
派生类向基类的类型转换有可能由于访问受限变得不可行。
此外,在使用private继承时,还存在另外一种机制:准许访问 。
我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限。
C++支持以两种方式实现该目的
方法一,使用using 语句,这是C++标准建议使用的方式
方法二,使用访问声明,形式为 base-class::member;, 位置在子类中适当的访问声明处。(注,只能恢复原有访问权限,而不能提高或降低访问权限)
p[1]=*(p+1)
网友评论