分类 C++ 下的文章

C++的动态联编与虚函数


前言

函数名联编(binding):将源代码中的函数调用解释为执行特定的函数代码块的过程。

静态联编:在编译过程中进行联编叫作静态联编。

动态联编:程序运行时才选择需要执行的代码叫作动态联编。


friend友元


前言

作用:友元类的所有方法友元函数 可以访问原始类的私有成员保护成员

友元类的声明:friend class [classname];

友元函数的声明:friend [functype] [funcname] ([arglist]);

声明位置:友元声明的位置并不重要,可以public、privated和protected——没有任何区别。

什么时候考虑友元:你不是我(非同一个类),也不是我身体的一部分(不是类的成员),但你可以用我的东西(被保护【protected】起来、被保密【privated】起来的成员)。


抽象基类(ABC)


前言

我对抽象基类(Abstract Base Class,ABC)的理解在两个点上。第一点是抽象,即高度抽象;第二点是基类,对抽象基类来说,它的存在只是为了作为基类(区别于具体类),不可以被实例化

高度抽象一词听起来本身就很“抽象”,不妨让我用“总结”这个词进行通俗解释。比方这里有两类人,一类只是聋人,另一类只是盲人。现在我们需要对这两类人抽象,也就是需要总结两类人的相同点+不同点,然后付诸于代码。为方便起见,这里就列举三个行为:散步为相同点,看得见与看不见为不同点,听得见与听不见为不同点——这样一个过程,就是在“抽象”。(好吧,这般解释可能还是抽象)