cpp细碎知识点
1
-
重写 (Override): 派生类中定义一个与基类虚函数具有相同函数签名(函数名、参数列表、返回类型)的函数,这被称为重写。 重写意味着派生类提供了基类虚函数的一个特定于派生类的实现。 重写是实现多态的关键
2
-
虚基类 (Virtual Base Class):
- 用于解决多继承中的菱形继承问题。 菱形继承指的是一个类从两个或多个具有共同基类的类派生而来,这会导致派生类中包含共同基类的多个副本,从而产生二义性。
- 通过在继承声明中使用
virtual
关键字,可以将基类声明为虚基类。 这确保了派生类中只包含虚基类的一个副本。
class A { public: int x; };
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {}; // 菱形继承,但 A 是虚基类
3
C++ 是通过继承和虚函数(以及重写虚函数)实现动态(运行时)多态性的。
4
在C++中,友元函数不会被继承。这意味着如果你在一个基类中声明了一个友元函数,这个友元关系不会自动传递给派生类。每个类都必须单独声明其友元函数。
5
- 省略
this
指针:在成员函数中,如果没有命名冲突,直接使用成员名(如length
),编译器会默认它是当前对象的成员,等同于this->length
。