C++ 私有继承2025年3月17日 | 阅读 3 分钟 私有继承私有继承是一种不同的方法,通过它我们可以实现“has-a”关系。借助私有继承,我们可以将类的 protected 和 public 成员转换为类的 private 成员。这意味着在实现私有成员类之后,成员类的所有基类都将成为私有类。但是,我们可以在派生类的成员函数内部实现这些私有类。 让我们通过一个程序来简要理解私有继承。 在上面的程序中,在公共继承中,如果两个类之间的关系设置为私有类,则编译器无法将派生类转换为基类。这就是为什么对象 S 无法调用函数 eat()。 在公共继承的情况下,基类的公共方法成为派生类的公共方法。换句话说,我们可以说派生类借助继承继承了基类的属性。这是一种“IS-A”关系。但在私有继承的情况下,基类的公共方法成为派生类的私有方法,即使基类是 protected 或 public。在这里,派生类不继承基类的属性。 但在私有继承的情况下,我们应该非常小心。私有继承非常令人困惑。这里,“继承”并不意味着“拥有”。假设父母将特殊糖果的秘方交给了孩子,条件是保密。孩子可以给人们提供不同种类的糖果,但不允许分享糖果的配方。借助私有继承,派生类可以由基类实现,但不是由基类拥有。因此,派生类不会向外界展示其接口。唯一向外界展示的是产品。 借助私有继承,类可以通过实现继承。用户可以直接访问类声明,用户是接口的一部分。用户还可以通过类声明间接访问实现类。 示例输出 ![]() 说明 正如我们从示例中看到的,Car 类最终继承了一个 Engine 组件,例如 汽缸。Car 方法可以在内部使用 Engine 方法 getCylinder() 来访问 Engine 组件 cylinder。 结论
下一个主题C/C++ 中的 Socket 编程 |
向量是编程中广泛使用的一种强大的数据结构。它们类似于数组,但具有动态调整大小等附加功能。在 C++ 中,向量在标准模板库 (STL) 中实现为类,可用于存储...
阅读 4 分钟
在本文中,我们将使用其输出来讨论一个 C++ 程序,以检查矩阵是否为正交矩阵。但在深入研究程序之前,我们必须了解什么是正交。正交矩阵是指其转置矩阵等于原矩阵的矩阵...
阅读 4 分钟
在函数中,参数被定义为在调用函数时传递的值。传递的值是源,接收函数是目的地。现在让我们详细理解默认参数的概念。定义 默认参数是函数声明中的一个值...
阅读 4 分钟
在 C++ 语言中,我们可以通过循环和 switch case 轻松地将数字转换为字符。在此程序中,我们从用户那里获取输入,并迭代此数字直到其为 0。在迭代过程中,我们将其除以 10,...
阅读1分钟
矩阵的角元素位于以下位置:左上角:位于第一行第一列的元素,即 matrix[0][0]。右上角:位于第一行最后一列的元素,即 matrix[0][cols - 1],其中 cols...
阅读 4 分钟
目标是通过添加尽可能多的边将一个 N 节点树转换为二分图。请记住,不允许自环和多重边,但允许环。图示:解释:可以添加连接节点 3 和 4 的边以保持图是二分的。可以...
阅读 3 分钟
在本文中,我们将讨论 C++ 中的迭代器失效及其示例。迭代器失效是 C++ 中用来描述迭代器(一种用于遍历向量、列表或映射等容器的强大工具)无效或无用的情况的术语...
阅读 4 分钟
简介:C++ 是一种强大的编程语言,为开发人员提供了许多创建高效健壮应用程序的功能。C++ 的重要功能之一是其标准模板库 (STL),它提供了许多数据结构和算法,使编程更轻松、更高效。顺序容器...
阅读 4 分钟
在 C++ 标准模板库 (STL) 的广阔领域中,<regex> 库因其强大的正则表达式功能而脱颖而出。在此库中,<smatch> 类提供了一种管理正则表达式中匹配的子表达式的机制。此类的值得注意的成员函数之一是 max_size()。理解 <smatch>...
阅读 6 分钟
异常是运行时错误,它会干扰程序遵循的正常指令。它是一个不希望在程序正常执行期间发生的意外事件。当访问元素的...时,超出范围异常发生的常见情况之一。
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India