摘要:
final 用于类后或者函数后,声明该类/函数,不可被继承/覆盖。 例如: 1. class Base final {...} //不能作为基类,即禁止继承 2. void print const final; //函数声明,禁止函数被覆盖(多用于类继承) override 用于声明某函数是覆盖覆盖 阅读全文
摘要:
区别: 1. 指针是对象,引用不是; 2. 声明引用必须初始化,声明指针可以不初始化(但一般建议初始化); 3. 指针可以绑定新的对象(花心大萝卜),而引用不可以(从一而终); 4. 在作为参数时,引用要比指针高效,因为指针要发生实参到形参的拷贝,而引用不需要。 实现机制:底层都是指针,都要分配内存 阅读全文
摘要:
多态 C++ 的多态,大概可分为函数重载和虚函数两类。 先说说函数重载,比较简单,就是函数参数的类型和个数不同罢了,返回值的类型不做讨论,不符合重载的定义。 函数重载是建立在name mangling上的,就是说在编译的时候,编译器会为函数生成独一无二的名字,以区别重载的函数。 我们来看例子 我们用 阅读全文