Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么要使用抽象类来创建类库?_C++_Oop - Fatal编程技术网

C++ 为什么要使用抽象类来创建类库?

C++ 为什么要使用抽象类来创建类库?,c++,oop,C++,Oop,当创建一个将被广泛分发或重用的类库时,尤其是对于客户端,使用一个抽象类优先于接口;因为,它简化了版本控制。这是开发基类库的Microsoft团队使用的实践。(COM是围绕接口设计的。)使用抽象类为一系列类型定义公共基类。使用抽象类提供默认行为。仅子类化该类逻辑上所属的层次结构中的基类 我不明白上面引用的解释。请解释为什么要使用抽象类来创建类库?您应该仔细阅读此类文章。据我所知,本文的主要部分专门讨论c语言。就这种语言而言,接口和抽象类之间有很大的区别。例如,c语言中的接口只是一组“纯”虚拟方法(

当创建一个将被广泛分发或重用的类库时,尤其是对于客户端,使用一个抽象类优先于接口;因为,它简化了版本控制。这是开发基类库的Microsoft团队使用的实践。(COM是围绕接口设计的。)使用抽象类为一系列类型定义公共基类。使用抽象类提供默认行为。仅子类化该类逻辑上所属的层次结构中的基类


我不明白上面引用的解释。请解释为什么要使用抽象类来创建类库?

您应该仔细阅读此类文章。据我所知,本文的主要部分专门讨论c语言。就这种语言而言,接口和抽象类之间有很大的区别。例如,c语言中的接口只是一组“纯”虚拟方法(它们不能在接口中定义,只有类才能实现它)。接口不能有构造函数。抽象类可以有构造函数。此外,C++不支持多重继承(与C++语言相反)。这样,c#接口和抽象类与c++的接口和抽象类看起来非常不同

您应该仔细阅读此类文章。据我所知,本文的主要部分专门讨论c语言。就这种语言而言,接口和抽象类之间有很大的区别。例如,c语言中的接口只是一组“纯”虚拟方法(它们不能在接口中定义,只有类才能实现它)。接口不能有构造函数。抽象类可以有构造函数。此外,C++不支持多重继承(与C++语言相反)。这样,c#接口和抽象类看起来与c++的接口和抽象类非常不同

你必须问他们“接口”是什么意思。如果他们从引用中删除了“优先于接口”这句话,我完全同意。我不知道这个短语应该是什么意思。如果你正确地遵循了链接的答案,你会发现它是关于C,而不是C++。C语言有接口和抽象类,它们是不同的事物,而C++只有抽象类。因此,这个问题的标签是错误的。@MartinBonner你能假设这个短语不存在,然后解释这个引语作为答案吗?感谢@LmTinyToon解释了“优先于接口”这个短语-这个引语适用于C#,其中两个术语是不同的。你必须问他们“接口”是什么意思.如果他们从引用中删除“优先于接口”这句话,我完全同意。我不知道这个短语应该是什么意思。如果你正确地遵循了链接的答案,你会发现它是关于C,而不是C++。C语言有接口和抽象类,它们是不同的事物,而C++只有抽象类。因此,这个问题的标签是错误的。@MartinBonner你能假设这个短语不存在,然后解释这个引语作为答案吗?感谢@LmTinyToon解释了“优先于接口”的短语-引语适用于C#,其中两个术语是不同的。