03 2020 档案
摘要:如何理解基类和派生类的关系 在开讲之前,我们先看基类和派生类的定义。为了方便显示,我把方法的声明和定义写在了一起。 基类 派生类 诶,看到这里有人问了。我这个指针和引用不是都针对的是派生类吗?为什么会输出"I am a person"呢?这明明是基类的方法啊?(这里为了举例,特地没有采用虚函数的方式
阅读全文
摘要:C++拷贝构造函数详解 简介 拷贝构造函数是C++独有的 一种特殊的构造函数 ,以同型对象初始化自我对象。 拷贝构造函数是一种特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用拷贝构造函数。当该类型的对象传递
阅读全文
摘要:继承引出的对构造方法的要求 构造方法是类的一个特殊成员,它会在实例化对象时被自动调用。 我们无法使用对象来调用构造函数,因为在构造函数构造出对象之前,对象是不存在的。 因此构造函数被用来创建对象,而不能通过对象来调用。 那么我们都知道继承,继承由于派生类继承基类内成员(无法继承构造方法,继承了私有成
阅读全文
摘要:C++判断输入是否为double 之前写过了Python如何判断输入字符串是否为数字,但是Python是弱类型语言,相比之下C++这种强类型语言判定难度更大。 "Python判断输入字符串是否为数字的方法" 例如,我要把不断输入的字符串中数字都转为double类型,别的都保存为字符串。那么我接收输入
阅读全文
摘要:Java toString解析 我们知道,Java所有的类都是Object类的派生类,toString就是Object类中的一个方法。 我们看看它的源代码。 可以看见,toString方法返回的是一个字符串。该字符串由 类名+ "@" + 此对象的哈希码(无符号16进制) 。 当我们没有重写Obje
阅读全文
摘要:C++头文件中的模板类 这已经是我的第三篇关于头文件的博客了,没想到我还是踩了个巨坑。 大家都知道要在头文件里声明类成员,在源文件中实现。 但是今天写数据结构作业,在头文件(Stack.h)定义了一个栈的模板类,在源文件(Stack.cpp)实现了相应的功能。但是编译死活不过,怎么改怎么过不了。 结
阅读全文
摘要:Java static修饰符 static修饰符是静态修饰符,大家写Java第一次接触static就是主函数中的pubic static void main的声明了。 那么static有什么用?本文来详细说说。 static成员与普通成员的区别 static表示 全局 或 静态 的意思,用来修饰类的
阅读全文
摘要:C++ 同类不同对象的互相访问 C++ 允许同一个类的不同对象(实例)访问彼此的私有成员。 示例 在Person类成员函数 calGen()中,我们 明显地调用了另一个Person类的私有成员_age 。而这样做是不会有任何问题的。 这体现了OOP的一种哲学, 封装是针对类而不是对象 ,相同类之间所
阅读全文
摘要:const不同位置带来的区别 今天同学问我数据结构时,我对以下代码懵了一下: 这是一个单链表的节点定义,我第五行,第一个构造函数的第二个参数有点懵。 我当时寻思着,把这个指针定义为const类型,那不永远都指向空了吗?那我为什么后面还能改变呢?查询之后发现是我对 const不同位置的作用 不了解。
阅读全文
摘要:计算机人推荐书目&网站(不断更新) 鉴于最近有很多同学问我学什么读什么书好,我把我自己的经历和愚见写下来,仅供参考。我只会写我亲自读过有感悟的书,而不会搬运一些我碰都没有碰过只闻大名的书。 本人目前也才大二,很多名书和高级书都没有读过,觉得过于基础的看官轻喷。 每本书我会写下我自己阅读后的亲身感受和
阅读全文
摘要:C++动态内存new和delete C++动态内存是C++灵活、炫酷的一种操作。学好它,能让自己编程逼格上一个level。 在学习动态内存之前,我们先要了解C++是怎么划分内存的: 栈: 在函数内部声明的所有变量都将占用栈内存。栈是由编译器自动分配和释放的,由系统分配。 堆: 这是程序中未使用的内存
阅读全文
摘要:C++头文件应该干的事情 最近在写自己项目的时候,头文件老是编译错误,后来发现还是对头文件掌握不牢。 头文件应该干什么? 所谓的头文件,其实它的内容跟 .cpp 文件中的内容是一样的,都是 C++ 的源代码。 但头文件不用被编译。 我们把所有的函数声明全部放进一个头文件中,当某一个 .cpp 源文件
阅读全文