随笔分类 - C++之专业知识
摘要:在C++语言中,同一范围内相同名称的不同声明称为重载,只有函数声明可以重载,对象或类型声明都不能重载。那是不是所有满足签名相同的函数就一定可以被重载呢? 一、函数重载适用范围 必须在同一范围(scope),比如同一命名空间或类中。不同命名空间或类中的同名函数不能称为函数重载。下面通过代码进行验证。
阅读全文
摘要:C++面向对象中的继承模式有三种:公有继承(关键字public)、保护继承(关键字protected)和私有继承(关键字private)。在开发中以公有继承占绝大多数情况,保护和私继承使用情况很少。写这篇博客介绍私有继承,源于一个问题。下面给大家详细道来。 一、限制C++接口问题 有一个Rectan
阅读全文
摘要:我们似乎记得有这么一个观点”递归都可以通过迭代(循环)实现,但是迭代不一定能够通过递归实现“。那么我们是否思考过这其中的道理呢? 一、递归概念 对于什么是递归,众说纷纭。我个人比较认可的一种简单直接的文字描述是:先递进,再回归;还有一种是动图描述:一只兔子拿着一面镜子,镜子里面和镜子的镜子的...镜
阅读全文
摘要:一、递归函数 看如下递归函数: 1 int f(int n){ 2 if(n == 1){ 3 return 1; 4 } 5 return f(n - 1) + 1; 6 } 客户端调用该递归函数时传入n = 5, 返回的函数值为5。那么它的调用堆栈(call stack)是怎么样的?又是如何计算
阅读全文