文章分类 - Linux C & C++
摘要:c语言里面 函数void func() 取地址&func 和 func值是一样的 .&func的作用是什么,为什么通过编译? func就是函数的入口地址,&func又是什么? func是函数名,func是函数的入口地址;&func是指向函数func的指针(指针跟地址是两个概念),指针的值是函数的地址
阅读全文
摘要:C++中友元(友元函数和友元类)的用法和功能 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除
阅读全文
posted @ 2020-09-16 15:39
陈木
摘要:C++ 虚基类、虚函数与纯虚函数 ① 虚基类 在说明其作用前先看一段代码 class A { public: int iValue; }; class B:public A { public: void bPrintf(){cout<<"This is class B"<<endl;}; }; cl
阅读全文
posted @ 2020-09-16 15:28
陈木
摘要:Const 放在指针前后和函数前后的区别 一、const修饰指针 int b = 500; 1、const int * a = & b; 2、int const * a = & b; 3、int * const a = & b; 4、const int * const a = & b; 对于1和2
阅读全文
posted @ 2020-09-16 14:52
陈木
摘要:C++ 类模板与模板类详解 在C++的Template中很多地方都用到了typename与class这两个关键字,有时候这两者可以替换,那么这两个关键字是否完全一样呢? 事实上class用于定义类,在模板引入c++后,最初定义模板的方法为:template<class T>,这里class关键字表明
阅读全文
posted @ 2020-09-16 14:04
陈木
摘要:构造函数、析构函数及拷贝构造函数/浅拷贝/深拷贝 一、构造函数 当创建一个类型对象时,类通过一个或者几个特殊的成员函数来控制对象的初始化,这种函数就是构造函数。它的任务就是用来初始化类对象的成员的,所以当创建类对象或者类对象被创建就会调用构造函数。 构造函数的几个特点: 1. 函数名和类名必须一样,
阅读全文
posted @ 2020-09-16 13:28
陈木
摘要:linux c 文件的属性(access,stat,fstat) access(判断是否具有存取文件的权限) 相关函数 stat,open,chmod,chown,setuid,setgid 表头文件 #include<unistd.h> 定义函数 int access(const char * p
阅读全文
posted @ 2020-09-16 10:38
陈木
摘要:C++中常见数据结构数组/单向链表/双向链表/树/映射 简介 一、数组 1. 静态数组 array 2. 动态数组 2.1. vector 2.2. priority_queue 2.3. deque 2.4. stack 2.5. queue 二、单向链表 forward_list 三、双向链表
阅读全文
posted @ 2020-09-16 10:33
陈木
摘要:C++中公有继承,私有继承,保护继承的区别 一个子类继承父类时,可按照public、private和protected方式继承父类,每种继承方式的区别如下: 1) public继承方式 基类中所有public成员在派生类中为public属性; 基类中所有protected成员在派生类中为protec
阅读全文
posted @ 2020-09-16 10:26
陈木
摘要:C语言中函数指针和回调函数的详解 一.什么是函数指针: 函数指针本质上也是指针,我们所写函数代码在内存中会被分配一段专门的储存空间,这段储存空间的地址就是函数的地址,既然是地址,就可以用指针去表示,自然就有了函数指针。 二.函数指针的用法: 1.首先明确函数指针怎么申明。形如:返回值类型 (*变量名
阅读全文
posted @ 2020-09-16 10:23
陈木
摘要:linux c下log输出代码模板 模本分为两个文件:log.c和log.h. log.c /** log.c **/ #include <unistd.h> #include "log.h" // log文件路径 #define filepath "./ps_com_log.log" //设定时间
阅读全文
posted @ 2020-09-16 10:15
陈木
摘要:用当前系统时间作为文件名创建文件 只要将获取的系统时间存入字符数组,就可以作为文件名创建文件了。关于获取系统时间的各种方法,详见我的另一篇文章C/C++ 获取当前系统时间(time_t和tm)清晰梳理。下面给出几种常用方法的代码:【注意】文件名中不能含有 / \ : * ? " < > | 方法一:
阅读全文
posted @ 2020-09-16 10:13
陈木
摘要:Linux中动态链接库和静态链接库 库是写好的现有的,成熟的,可以复用的代码。实现中每个程序都要依赖很多基础的底层库,不可能每个人的代码都是从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a , .lib)和动态库(.s
阅读全文
posted @ 2020-09-16 09:30
陈木
摘要:Stdafx.h的作用以及原理 VC工程里面经常见到stdafx.h这个头文件,以前也没有特别注意,但是这个文件用不好经常会出错。Stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序扩展的框架)。所谓头文件预编译,就是把一个工程(
阅读全文
posted @ 2020-09-16 09:14
陈木
摘要:C语言有符号数与无符号数之间的转换 无符号数:不存在正负之分,所有位都用来表示数的本身。 有符号数:最高位用来表示数的正负,最高位为1则表示负数,最高位为0则表示正数。 1.无符号数 >有符号数 看无符号数的最高位是否为1,如果不为1(为0),则有符号数就直接等于无符号数;如果无符号数的最高位为1,
阅读全文
posted @ 2020-09-15 17:00
陈木
摘要:从零开始学C++之STL(一):STL六大组件简介 一、STL简介 ① 泛型程序设计 泛型编程(generic programming) 将程序写得尽可能通用 将算法从数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 ② 什么是STL 1、STL(Standard Temp
阅读全文
posted @ 2020-09-15 16:47
陈木
摘要:C++标准模板库(STL)之Set/List/Map/Priority_Queue/Queue/Stack/String/Vector 一、Set的用法 Set:集合,一个内部自动有序而且不重复元素的容器。使用set,要加头文件#include<set>和using namespace std; 1
阅读全文
posted @ 2020-09-15 16:46
陈木
摘要:五个数据段之代码段、数据段、BSS、栈、堆 一、五个数据段 进程(执行的程序)会占用一定数量的内存,它或是用来存放磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过,进程对这些内存的管理方式因内存的用途不一而不尽相同:有些内存是事先静态分配和统一回收的;有些却是按照需要动态分配和回收的。 对于
阅读全文
posted @ 2020-09-14 17:30
陈木
摘要:堆和栈的区别 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 二、栈和堆的空间大小 在Window
阅读全文
posted @ 2020-09-14 17:27
陈木
摘要:c++ 函数后面加一个冒号的含义 ① 冒号后面跟的是赋值,这种写法是C++的特性 A( int aa, int bb ):a(aa),b(bb) { } 相当于 A( int aa, int bb ) { a=aa; b=bb; } ② C++构造函数后面的冒号 构造函数后加冒号是初始化表达式,有四
阅读全文
posted @ 2020-09-14 17:26
陈木