C++
小学生码程序
远离八阿哥
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基类指针指向子类对象的原理解释——类的内部存储结构和内存分布及虚继承时的特殊情况
之前粗浅得了解了基类指针指向子类对象时,会舍弃子类所独有的那一部分。 直观地来看,这是通过解引用父类指针后,无法通过它来访问子类类成员变量,但可以通过虚函数表来调用子类重写的虚函数。这一部分可以搜很多文章来看,基本很清晰。如 C++ 虚函数表、函数地址、内存布局解析讲的很不错 20...转载 2021-12-12 22:22:27 · 500 阅读 · 0 评论 -
c++继承同名成员如何访问的问题(涉及到虚函数)
本文知识结构: 一.二者的访问权限可能有些不同。 1.对象访问,子类的对象不加父类作用域的话就访问子类对象, 要是加上父类作用域就可访问父类对象。 另外还有是否设置虚函数时的访问。 #include<iostream>using namespace std;class father {public: virtual void fun() { cout << "父类虚...转载 2021-12-12 22:19:59 · 272 阅读 · 0 评论 -
函数的类型
构造函数: 拷贝构造函数 就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的 拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。 如 #include <iostream>using namespace std; class CExample {private: int a;public: //构造函数 ...转载 2021-12-12 22:18:45 · 265 阅读 · 0 评论 -
继承的概念与定义
继承 继承的概念与定义 概念: 继承是指一个子类(或称为派生类)继承父类(或称为基类)的特征(属性和操作)。继承是面向对象程序设计时实现代码复用的重要手段,它允许在原有的类的基础上进行扩展,增加功能,这样新产生的类称为子类。 定义: class 子类名:继承方式 父类名; ...原创 2021-12-12 21:17:10 · 2533 阅读 · 0 评论 -
C++ 指针常量、常量指针和常指针常量
1、指针常量 如果在定义指针变量时候,指针变量前用const修饰,被定义的指针变量就变成了一个指针类型的常变量,指针类型的常变量简称为指针常量。 格式如下 数据类型 * const 指针变量=变量名; 修饰符const与指针变量紧邻,说明指针变量不允许修改,既然指针变量的值不能修改,所以一定要在定义的时候给定初值(指向一个确定存在的地方) 如下 &l...转载 2021-12-06 17:18:20 · 261 阅读 · 0 评论 -
define和inline的区别
define和inline的区别 程序在进行函数调用时要跳转到函数的入口处去执行,此事需要保存当前的现场,调用完成之后还需要恢复现场,因此函数的调用有一定的空间和时间的开销。 宏定义的使用类似函数,但是没有参数压栈,代码生成的开销,由预处理器来实现,调用的方式也是使用简单的文本替换,不会对参数的类型以及返回值的类型进行检查,因此使用宏具有一定的安全隐患。无法使用编译器类型检查的优势,且部分可以转换的返回值也无法进行转换。 inline函数,区别与函数调用过程当中的控制转移,in原创 2021-12-06 16:16:12 · 602 阅读 · 0 评论 -
cout、cerr、clog
之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以下的内容均是本人从网上查阅资料看来整理的,暂时还没有查阅官方资料,不保证准确,欢迎讨论)其实大家平常常会用的主要有三个:cout、cerr、clog,首先简单介绍下三者。这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论):cout:写到标准输出的ostream对象;cerr:输出到标准错误的ostream对象,常用于程序错误信息;clog:也是输出标准错误流(这点儿和cerr是一样的)转载 2021-12-04 23:06:21 · 531 阅读 · 0 评论 -
18. 四数之和
给你一个由 n 个整数组成的数组nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d< n a、b、c 和 d 互不相同 nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。示例 1:输入:nums...原创 2021-12-04 12:10:22 · 112 阅读 · 0 评论 -
lower_bound(key)、upper_bound(key)
今天在力扣上刷了一道题,用到了lower_bound(key)、upper_bound(key),去搜了用法力扣题目链接:区间内查询数字的频率lower_bound(key) 返回一个指向当前 map 容器中第一个大于或等于 key 的键值对的双向迭代器。如果 map 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。 upper_bound(key) 返回一个指向当前 map 容器中第一个大于 key 的键值对的迭代器。如果 map 容器用 const ..原创 2021-11-24 19:32:41 · 285 阅读 · 0 评论 -
C++ STL vector插入元素(insert()和emplace())详解
转载:C++ STL vector插入元素(insert()和emplace())详解vector容器提供了 insert() 和 emplace() 这 2 个成员函数,用来实现在容器指定位置处插入元素,本节将对它们的用法做详细的讲解。另外,如果想实现在 vector 容器尾部添加元素,可阅读《vector添加元素》一节。insert()insert() 函数的功能是在 vector 容器的指定位置插入一个或多个元素。该函数的语法格式有多种,如表 1 所示。表 1 insert.转载 2021-11-24 19:08:26 · 25932 阅读 · 1 评论 -
emplace_back()和push_back()的区别
emplace_back()和push_back()的区别emplace_back() 和 push_back() 的区别,就在于底层实现的机制不同。push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。...原创 2021-11-24 18:57:43 · 11217 阅读 · 0 评论
分享