分类: 学习笔记

10 篇文章

动态多态原理浅析(C++)
前言 多态主要分为两类: 静态多态:地址早绑定,即编译阶段确定函数地址,例如函数重载、运算符重载 动态多态:地址晚绑定,即运行阶段确定函数地址 动态多态 使用条件 父类指针或引用指向子类对象 基础语法 引入一段代码示例: #include<iostream> using namespace std; class Animal { pub…
虚析构与纯虚析构(C++)
纯虚函数和抽象类 概念 首先引入“纯虚函数”和“抽象类”的概念,示例代码如下 #include<iostream> using namespace std; class Base //抽象类 { public: virtual void func() = 0; //纯虚函数 }; class Son1:public Base { pub…
菱形继承问题及解决方法—虚继承与虚基类(C++)
菱形继承 菱形继承的概念 两个派生类继承同一个基类,又有某个类同时继承着这两个派生类 菱形继承典型案例 这种继承带来的问题主要有两方面: 羊和驼都继承了动物的类成员,当羊驼想要使用时,会产生二义性 羊驼实际继承了两份来自动物的数据,但实际只需要一份 想要解决有两个思路,一是给羊驼的每一份数据加上作用域,但本质上羊驼还是继承了两份数据。二是通过虚继承…
字符串分割—istringstream(C++)
前言 算法上机课布置了这么个题 输入一段英文句子,要求提取其中所有单词,提取后的单词不能有空格和标点符号 思路 首先想到直接遍历整个字符串,遇到空格和标点就把单词输出,但是写起来比较麻烦,而且不能实现单词的存储(虽然题目没有要求存储)。 在网上搜索其他大佬的代码时发现了istringstream这个东西,这是C++的一个输入输出控制类,作用是将字符…
类外实现成员函数的好处(C++)
报错代码 事情是这样的,在学友元时,自己跟着教程的思路写了一段代码 #include<iostream> #include<string> using namespace std; class JieGay; class MyHouse { //成员函数做友元 friend void JieGay::visit(); pub…
内存对齐(C++)
内存对齐的概念 引入代码 众所周知,C++的空类占用1个字节的内存空间,非空类占用的空间与类内的成员有关。 但类中成员所占内存并不是连续的,拿以下代码举例: #include<iostream> using namespace std; class test1 { char c1; int a; char c2; }t1; class …
面试八股合集(C++、数据结构、计网、操作系统)
面试要准备的八股太多了,纯文字看多了容易疲劳,遂从各处搜集了些C++面试能用到的八股思维导图,资源均来源于互联网 大图看不清可右键新建标签页打开或另存到本地 计网 七层网络模型 :https://gitmind.cn/app/doc/ddd6333221 TCP协议: https://gitmind.cn/app/doc/1fe6335549 HT…
网易游戏(互娱)2019年-游戏测试开发工程师部分真题
1.二叉树的前中序遍历 题目 已知一棵二叉树的前序遍历是ABCDEFGH,那么它的中序遍历一定不可能是: A:CBEDAGFH B:BADCFEHG C:DCEBFAHG D:其它三个选项都有可能是该二叉树的中序遍历结果 题解 正确答案为D 前序遍历顺序为根左右 中序遍历顺序为左根右 后序遍历顺序为左右根 则根据选项可画出如下三种树: 2.偶数出列…
对象成员与本类的构造与析构顺序(C++)
定义 当一个类中的成员作为另一个类的对象,称该成员为对象成员 例如: class A{} class B { A a; } B类中有对象A作为成员,A为对象成员 验证 示例代码: #include<iostream> #include<string> using namespace std; //手机类 class Phon…
深拷贝与浅拷贝(C++)
区别 浅拷贝:简单的赋值拷贝 深拷贝:在堆区申请新的空间进行拷贝 示例 为方便理解,引入一段错误代码 #include <iostream> #include <cstring> using namespace std; class Person { public: Person() { cout << &quo…