01 编程语言基础 C++
文章平均质量分 81
C++ Standard之演化
C++ 98(1.0)
C++ 03(TR1, Technical Report 1)
C++ 11(2.0)
C++ 14
harveyhan
一名10年老开发工程师,开始认真总结知识,认真写文章,欢迎关注。
展开
-
【C++框架和库】常用 C++ 框架、库和资源汇总
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。C++标准库,包括了STL容器,算法和函数等。数据库,SQL服务器,ODBC驱动程序和工具。调试库, 内存和资源泄露检测,单元测试。提高质量,减少瑕疵的代码分析工具列表。音频,声音,音乐,数字化音乐库。生物信息,基因组学和生物技术。C/C++集成开发环境列表。在线C/C++编译器列表。用于创建开发环境的软件。C/C++编译器列表。C/C++调试器列表。原创 2023-02-05 10:20:35 · 794 阅读 · 0 评论 -
【侯捷面向对象高级开发】第一部分:基于对象 Object Based
C++14C++20complex.h #ifndef __COMPLEX__ //如果未曾定义,则定义,可以向下执行,已经定义则不执行 #define __COMPLEX__ //Header布局 //1.前置声明,都先声明,让前面的类找到后面类的符号 forward declarations class ostream;//2.类声明 class declarations class complex{ };原创 2023-02-05 09:58:31 · 131 阅读 · 0 评论 -
【CAN总线基础知识】
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络。传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。近些年来,CAN控制器价格越来越低。CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。1)多主工作原创 2021-02-26 07:26:37 · 410 阅读 · 0 评论 -
【C++数据结构面试题】
链表特殊线性表,它并不是按线性顺序存储数据的线性表,它在每个节点里面包含了下一个节点的指针,来记录下一个节点的位置。链表节点结构: 数据+next指针【题1】 链表和数组有什么区别链表和指针有以下几点不同:1)存储形式数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个节点要保存相邻节点指针。2)数据查找数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索节点,效率低。3)数据插入和删除链表可以快速插入和删除节点,而数组则可能需要大量数原创 2021-02-23 08:03:51 · 1574 阅读 · 0 评论 -
【C++基本概念面试题】
【面试题1】 什么是C语言语句,预处理指令是不是语句答案:语句就是以分号作为分隔符,编译后产生机器指令的代码。预处理指令不是语句。【面试题2】变量的声明和定义有什么区别答案:...原创 2021-02-21 11:55:12 · 2278 阅读 · 0 评论 -
【机器人操作系统入门ROS】
ROS简介1、ROS:适用于机器人编程的框架,连接操作系统和ROS应用程序的中间件,是运行在Linux上的运行时环境。2、ROS特点:1)分布式点对点:分布式的框架,通过点对点的设计让机器人的进程可以分别运行,便于模块化的修改和定制,提高了系统的容错能力。2)多种语言支持:C++、Python等,ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传递。3)开源社区3、ROS优缺点优点缺点提供框架、工具和功能通信实时性能有限方便移植系统稳定性尚不满足工业级要原创 2021-02-24 07:11:41 · 837 阅读 · 0 评论 -
【TCPUDP通信原理】
UDPUDP协议全称是用户数据报协议,在网络中它与TCP一样用于处理数据包,是一种无连接的协议。1、面向无连接不需要和TCP一样在发送数据前进行三次握手建立连接,想发送报文就可以开始发送了。2、有单播、多播、广播的功能UDP不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式3、UDP是面向报文的UDP对应用层交下来的报文,既不合并,也不拆分,因此应用程序必须选择合适大小的报文4、不可靠性首先体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。优点也很明显:在原创 2021-02-26 08:08:04 · 777 阅读 · 0 评论 -
【C++数据结构和算法面试题】
一、复杂度的概念复杂度是衡量算法的质量优劣的标准,一般可分为“时间复杂度”、“空间复杂度”。【题5】 编程实现选择排序选择是指在每次排序时,选择最大或者最小项,将其放入适当的位置上,反复操作,知道所有的数据排序完成为止。例如:一个班级学生排队,先将最高的学生排在队首,然后在其他学生中再挑出最高的一个,排在第二的位置,依次类推,直到排完为止。/*选择排序*/void SelectSortArray(int arr[], n){ for(int i=0; i<n-1; i++) {原创 2021-02-23 19:41:09 · 319 阅读 · 0 评论 -
【C++进阶心法 函数】
1、main()函数不一定是程序中第一个执行的函数#include <iostream>using namespace std;class A{public: A() { cout<<"In default A's constructor"<<endl; }}; A a;int main(){ cout<<"In main()"<<endl; return 0;}实际上,所有类外对象的构造函数都是先于原创 2021-07-29 15:06:07 · 209 阅读 · 0 评论 -
【C++学习笔记1:C++对C的扩展】
一、C++对C的加强C++是对C的基础语法的扩展,面向对象(继承、封装、多态),STL等。1、namespace1)当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;using namespace std; 或 std::cout2) C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h3) C++命名空间的定义: namespace name{...}4) using namespace Na...原创 2021-03-04 07:11:53 · 420 阅读 · 1 评论 -
【C++基础】第一节课 C++基础知识
目录0 关于c++Topics1 一个简单的C++程序2 函数重载2.1 重载的概念2.2 函数重载与重复声明的区别3 引用的概念4 引用和指针的区别5 引用作为函数参数5.1 引用与非引用类型作为函数参数的区别5.2 使用引用形参的情况6 引用作为函数返回值6.1 引用与非引用类型作为函数返回值的区别6.2 引用作为函数返回值需要注意的问题...原创 2020-01-15 08:15:08 · 1205 阅读 · 1 评论 -
【C++进阶心法 内存管理】
第3章 内存管理3.1 程序内存布局C++程序 编译为二进制后,运行时载入内存。运行时内存分布从低地址到高地址,分别为 代码段-初始化数据段-未初始化数据段-映射段-栈-内核空间。程序中使用了内存映射文件,如共享库、共享文件,则包含映射段。段名 存储内容 分配方式 生长方向 读/写特点 运行态 代码段(text segment) 程序指令、字符串常量、虚函数表 静态分配 由低到高 只读 用户态 初始化数据段(dat..原创 2021-07-29 15:07:39 · 341 阅读 · 1 评论 -
【C++基础】第二节课 类的构造和析构
目录1 构造函数的定义2 构造函数初始化列表3 默认构造函数4 复制构造函数5 关于构造函数的总结6 析构函数7 对象的动态建立与释放8 构造函数和析构函数执行顺序1 构造函数1.1 类对象如何初始化如果类的数据成员是public的权限,可以在定义对象时初始化。class Time{ public: int hour; ...原创 2020-01-16 07:28:10 · 455 阅读 · 0 评论 -
【C++基础】 第四节课 对象高级应用(2)
目录1 const数据成员2 const成员函数3 const对象4 指向const对象的指针和const指针5 const引用6 静态成员7 友元函数和友元类1 类的公有数据的保护举例说明:定义一个类Class Time{ public: const int m_hour; //const数据成员 ...原创 2020-01-17 07:18:05 · 150 阅读 · 0 评论 -
【C++基础】 第六节课 继承和派生
目录1 继承和派生的概念2 派生类的继承方式3 继承与静态成员4 继承与转换5 派生类的构造与复制控制5.1 派生类的构造5.2 派生类的析构5.3 派生类的复制和赋值6 多重继承派生类的定义和构造7 多重继承的二义性8 虚继承与虚基类1 继承和派生的概念1.1 派生的概念 函数 ...原创 2020-01-18 08:34:26 · 335 阅读 · 0 评论 -
【C++基础】第三节课 对象高级应用(1)
目录1 类对象的复制与赋值2 内嵌对象3 指向类对象的指针4 指向类对象数据成员的指针5 指向类对象成员函数的指针6 对象数组1 类对象的复制与赋值1.1 举例说明通过对字符串操作的自定义类String来说明:class String{ private: char *m_str; public: String(const char *s...原创 2020-01-16 12:52:48 · 466 阅读 · 0 评论 -
【C++基础】 第七节课 多态与虚函数
目录1 C++的多态性2 派生类到基类的转换3 虚函数4 纯虚函数5 抽象类6 接口继承和实现继承1 C++的多态性1.1 静态类型和动态类型1)静态类型是指针或引用在定义时指定的类型,在编译期就已经确定。2)动态类型是由指针或引用当前所指向的类型相关,在运行期才可以确定。3)静态类型不可以更改,动态类型可以更改。class B...原创 2020-01-18 08:37:00 · 371 阅读 · 0 评论