C/C++
1234xxxx
这个作者很懒,什么都没留下…
展开
-
个人总结之重载、重定义、重写的区别
C++中发生继承时,常常或伴随着子类和父类之间函数或是数据成员的复制、重定义、重写;或是在本类中发生重载;1、复制当发生继承时,子类将会 复制父类 的全部成员;因此我们可以认为在子类中存在两个域:子类域、父类域;2、重定义(redefine)又叫隐藏,遮掩隐藏是指派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏,而不是在派生类中发生重载。特性: 不在同一个作用域(分别位于派生类与基类) 函数名字相同 返回.原创 2020-07-08 15:30:24 · 402 阅读 · 0 评论 -
个人总结之C++实现二叉树遍历(全)
#include<iostream>#include<stack> #include<queue>#include<vector>#include<algorithm>using namespace std;/*输入实例 1 2 3 4 5 6 7 -1-1 -1-1 -1-1 -1-1此树的前序遍历为:1 2 .原创 2020-07-02 21:01:50 · 526 阅读 · 0 评论 -
学习笔记之C++异常处理
程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:运行时错误是指程序在运行期间发生的错误,例如除数为 0、内存分配失败、数组越界、文件不存在等。C++ 异常(Exception)机制就是为解决运行时错误而引入的。C++异常处理机制C++语言的异常处理机制通过3个关键字throw、try和catch实现。try:检测可能的会出现的语句范围;throw:抛出异常;catch:捕获抛出的异常;try{ // 可能抛出异常的语句}catch(excepti.原创 2020-07-02 09:58:56 · 376 阅读 · 0 评论 -
数据结构中树基础知识总结
树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tm,其中每一个集合本身又是一棵树;结点拥有的子树数称为结点的度 (Degree) 。度为 0 的结点称为叶结点(Leaf) 或终端结点;度不为 0 的结点称为非终端结点或分支结点。树的度是树内各个节点度的最大值。结点的子树的根称为该结点的孩子(Child.原创 2020-06-20 21:37:30 · 994 阅读 · 1 评论 -
C/C++中数据大小、字节对齐、内存占用总结
数据大小获取sizeof()操作符,求占用空间,对数组而言大小为 type大小 * 数据个数;int a[] = {1,2,3,4,5}sizeof(a) = 20sizeof(&a) = 4特殊的:在string时,由于字符串本质上就是自带‘\0’结尾的 char[] 数组,而char 的大小有恰好为1,因此sizeof()就正好会是数组的长度;在C++98中是不允许对类的非静态成员变量使用sizeof()的,而在C++11中是合法的;根据 C99 规定,size..原创 2020-05-21 19:09:58 · 3832 阅读 · 9 评论 -
C/C++ 内存分区与内存分配
内存分布站在汇编语言的角度,一个程序分为:代码段--CS 数据段--DS 堆栈段--SS 扩展段--ES站在高级语言的角度,根据APUE,一个程序分为如下段:text data(initialized)bss heap stack;存储时存在3个区域,分别是:代码段、数据段以及BSS段;当程序被加载到内存单元时(即运行,此时可称之为: 进程),则需要另外两个区:堆和栈在x86处理器上的Linux,代码段从0x08048000单元开...原创 2020-05-21 18:48:01 · 416 阅读 · 0 评论 -
C/C++强制/自动类型转换
C语言自动类型转换unsigned 即为 unsigned int ,此时可以省略int 只写unsigned隐式的类型转换是安全的,而显示的类型转换是存在风险的。C语言强制类型转换C语言中 涉及地址间强制类型转换特别要注意 字节对齐 的问题;unsigned int value = 1024;// 4 个 字节cout << hex << &value << endl;bool *p = (...原创 2020-05-21 18:39:35 · 1208 阅读 · 0 评论 -
函数指针 指针函数 数组指针 指针数组
函数指针(回调函数)重在指针,说明其是一个指针,只不过这个指针有点特殊,指向特定形式的函数。格式 返回值类型 ( * 指针变量名) (形参1, 形参2...);int func(int x);{ /* 声明一个函数 */cout << "-----" << endl;}int (*p_func) (int x); /* 声明一个函数指针 (这个函数的返回值为int型,参数为int型)*/p_func = func; /* 将f...原创 2020-05-21 10:23:43 · 220 阅读 · 0 评论 -
操作系统的大小端模式
什么是大小端模式大小端存储由 CPU架构 决定。大端模式( big endian):低地址存在高位,高地址存在低位;小端模式( Little Endian):低地址存在低位;高地址高位;例如:使用大端模式的有:Mac OS、PowerPC、IBM、Sun、TCP/IP网络数据流;使用小端模式的有:x86、Linux;而ARM可以是大端模式,也可以是小端模式;如何判断CPU是大端模式还是小端模式// liunx内核的方法void check_CPU...原创 2020-05-21 09:52:53 · 1653 阅读 · 0 评论 -
变量(定义 初始化)、临时变量
声明与定义变量的声明(如:extern int a;声明外部变量)告诉编译器变量名字与类型;变量的定义:为变量分配存储空间,此时也可以给定初始值;函数的声明:告诉编译器有这么一个函数;函数的定义:实现函数,简言之就是带有{ };与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型定义了一个变量(对象),是占用内存空间的。calss Point{};Point t1; // 将调用构造函数...原创 2020-05-21 09:45:42 · 2917 阅读 · 0 评论 -
define typedef用法
#define只能通过简单的文本替换来实现而非传递参数;#define MUL1(x)x * x#define MUL2(x)(x) * (x)MUL1(3) // 9MUL1(3+2) // 3+2*3+2 = 11MUL2(3) // 9MUL2(3+2)// (3+2)*(3+2) = 25例题#define SUB(x,y) x-y#define ACCESS_BEFORE...原创 2020-05-21 09:20:43 · 339 阅读 · 0 评论 -
已知树的遍历数组构建一棵二叉树
在构造二叉树的时候常见的是使用cin >> node_value; 来确定树的节点值,这就造成了我们调试程序每次都得手动输入一棵树的已知遍历,,极不方便,且效率低下,假如我们将这个遍历定义为一个数组,就可以省去这些麻烦啦,请看下面的例程。已知上面树的前序遍历,,我们可以由前序遍历构造二叉树,,代码如下:(运行环境:DEV C++ 5.11)#include<bits...原创 2019-10-21 09:49:29 · 684 阅读 · 0 评论 -
浮点数在C语言中的表示以及(int&) p使用
先且看一到试题#include<iostream>using namespace std;int main(){ float a = 1; cout << boolalpha << ((int)a == (int &)a)<<endl; float b = 0; cout << boo...原创 2019-04-28 22:22:35 · 1783 阅读 · 0 评论 -
C++编写显示全年日历
源码下载链接:https://download.csdn.net/download/mr_xuf/10423884#include <iostream>#include <iomanip>using namespace std;class Calendar{private: int weekday; int year;public: Calen...原创 2018-05-18 21:04:38 · 6202 阅读 · 6 评论