定义34:满足下列条件的抽象类是一个协议类:
(1)它既不包含也不继承那些包含成员数据、非虚拟函数或任何种类的私有(或保护的)成员的类;
(2)它有一个非内联虚析构函数(定义了一个空实现);
(3)所有成员函数(除了包含被继承函数的析构函数)都声明为纯虚函数,并任其处于未定义的状态。
原则57:一个协议类几乎是一个完美的绝缘器。
原则58:一个协议类可以用来消除编译时依赖和连接时依赖。
定义34:满足下列条件的抽象类是一个协议类:
(1)它既不包含也不继承那些包含成员数据、非虚拟函数或任何种类的私有(或保护的)成员的类;
(2)它有一个非内联虚析构函数(定义了一个空实现);
(3)所有成员函数(除了包含被继承函数的析构函数)都声明为纯虚函数,并任其处于未定义的状态。
原则57:一个协议类几乎是一个完美的绝缘器。
原则58:一个协议类可以用来消除编译时依赖和连接时依赖。