自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

转载 11、前置声明使用时机详解

这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler Firewalls and the Pimpl Idiom (编译器防火墙和Pimpl惯用法) 的启发,这一章讲述了减少编译时依赖的意义和一些惯用法,其实最为常用又无任何副作用的是使用前置声明来取代包括头文件。Item 26 的Guideline - "Never #include a header when a forward declaration will suffice"在这里,我自己总结了可..

2020-09-02 15:52:34 103

转载 10、前置声明的应用与陷阱

前置声明的使用 有一定C++开发经验的朋友可能会遇到这样的场景:两个类A与B是强耦合关系,类A要引用B的对象,类B也要引用类A的对象。好的,不难,我的第一直觉让我写出这样的代码:// A.h#include "B.h"class A{ B b;public: A(void); virtual ~A(void);}; //A.cpp#include "A.h"A::A(void){} A::~A(void){} // B.h#.

2020-09-02 15:45:06 139

转载 6、重载操作符(operator)介绍

本文主要介绍C++中的重载操作符(operator)的相关知识。1. 概述1.1 whatoperator 是C++的一个关键字,它和运算符(如=)一起使用,表示一个运算符重载函数,在理解时可将operator和运算符(如operator=)视为一个函数名。使用operator重载运算符,是C++扩展运算符功能的方法。使用operator扩展运算符功能的原因如下:使重载后的运算符的使用方法与重载前一致 扩展运算符的功能只能通过函数的方式实现(实际上,C++中各种“功能”都是由函数实现的

2020-09-02 15:24:00 340

转载 3、赋值运算符函数执行时机详解

#include<iostream>#include<string> using namespace std; class Data{private: int data; public: // 构造函数 Data() { }; // 构造函数 Data(int _data):data(_data) { cout << "This is constructor" &lt.

2020-09-02 14:40:27 279

转载 4、const成员

1. const修饰类成员函数将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。即有''读''的权限,但没有''写''的权限。void display() const { // 相当于 void display(const Date* const this)cout << _year << endl; // 可读_year = 100..

2020-09-02 13:53:02 119

转载 2、拷贝构造函数和赋值运算的调用时机详解

参照:https://www.cnblogs.com/TianFang/archive/2012/10/27/2742121.html常见的给对象赋值方式有构造函数,拷贝构造函数,赋值运算符这三种方法,如下代码演示了这几种常见的方法。Aa1;Aa2(a1);Aa3 = a1;a3 = a2;代码的第一行就是通过默认构造函数来创建一个对象,一般也不会和其它几种构造方式混淆,和C#,Java等其它语言也是一样的,还比较容易掌握。而拷贝构造函数和赋值运...

2020-09-02 11:31:17 332

转载 8、class 与 struct的默认权限区别

/* class和struct最大的区别:默认权限不同* class:成员的默认权限是private* struct:成员默认权限为public, 继承也默认为public继承*/class Human { char* name; //默认为private成员 int age; Human(const char* initString); //默认为private成员 ~Human(); void getObjName(); //默认为p...

2020-06-11 12:47:11 1819

转载 5、重载 & 和 const&

转载:https://blog.csdn.net/yl_puyu/article/details/88987363 1. 简介取地址成员函数也是''类的六大默认成员函数''之一。其分为两种,普通取地址操作符、const取地址操作符。有了上一节''const成员''的基础,const成员函数及const对象去调用,普通的成员函数普通的对象来进行调用,若没有普通成员函数,那么普通对象也能够调用const成员函数。取地

2020-05-14 12:14:35 185

原创 7、std include

std命名空间是C++中标准库类型对象的命名空间。比如标准库中的类iostream、vector等都定义在该命名空间中,使用时要加上using声明(using namespace std) 或using指示(如std::string、std::vector<int>).using namespace 与 include :以前都是用#in...

2020-05-12 10:24:52 776

转载 1、C++ 六个默认成员函数

转载:https://blog.csdn.net/u013270326/article/details/81235384 C++中创建一个空类:class Empty {};默认会生成4个函数,其函数的原型如下:public: Empty() { ... } Empty(const Empt...

2019-07-31 13:29:23 404

转载 12、多继承的构造和析构函数调用顺序

转载:https://www.cnblogs.com/tenjl-exv/p/7624284.html声明多继承的方法多继承与单继承的区别仅在于它们基类的个数。在定义多继承的派生类时,要指出它们所有基类名以及继承方式。声明形式如下:class 派生类名:继承方式1 基类名1,继承方式2,基类名2,......,继承方式n,基类名n{  派生类新增成员;};注意:...

2019-07-29 15:23:56 1426

转载 9、C++ 构造函数后加冒号

转载:https://www.cnblogs.com/qingyuanhu/p/4301691.htmlC++ 构造函数后加冒号其实冒号后的内容是初始化成员列表,一般有三种情况:1、对含有对象成员的对象进行初始化,例如,类line有两个私有对象成员startpoint、endpoint,line的构造函数写成:line(int sx,int sy,int ex,int ey):s...

2019-07-23 13:43:34 340

原创 mmap函数

offset:入参,文件映射的偏移量,通常设置为0,代表从文件最前方开始对应,offset必须是分页大小的整数倍。MAP_PRIVATE:对映射区的写入操作会产生一个映射区的复制,对此区域的修改不会写会原文件。MAP_SHARD:写入映射区的数据会复制回文件,且运行其他映射文件的进程共享。fd:入参,要映射到内存中的文件描述符,有open函数打开文件时返回的值。addr:出参, 指定映射的起始地址,通常设为NULL,由内核来分配。len:入参, 代表将文件中映射到内存的部分的长度。

2023-07-07 17:32:13 340

原创 普通类型变量强制转换规则

(5)将一个int,short或long型数据赋值给一个char型变量,只将低8位原封不动的送到char型变量中。(6)将有符号型数据赋值给长度相同的无符号型变量,连同原来的符号位一起传送。(3)将double型数据赋值给float型变量时,注意数值范围溢出。(4)字符型数据可以赋值给整型变量,此时存入的是字符的ASCII码。(2)将整型数据赋值给浮点型变量时,数值不变,但是以指数形式存储。(1)将浮点型数据赋值给整型变量时,舍弃其小数部分。

2023-06-02 10:50:04 174

原创 NFS服务端配置

首先关windows防火墙 将linux配置更改下vm-setting-bridge。

2023-06-02 09:42:22 140

原创 安装ubuntu分区设置

一般来说我们最少需要两个分区,需要一个SWAP分区,和一个“/”分区,但把一些常用、重要的挂载点分到其它分区,这样便于管理。一般一个/分区,一个/usr分区,一个/home 分区,一个/var分区。这些完全都可以根据自己的需要来进行分配修改。一般来说,在linux系统中都有最少两个挂载点,分别是/ (根目录)及 swap(交换分区),其中/是必须的;

2023-06-02 09:38:07 4398

原创 VMWARE中ubuntu快捷键

这里ctrl + d 为 EOF 即 -1 结束键盘输入 跟 Shift+Ctrl+Q:关闭终端一个效果。Shift+Ctrl+N:新建窗口路径依旧在当前路径。Shift+Ctrl + ‘+’: 变大。Ctrl + ‘-’ : 变小。//Shift+Ctrl+W:关闭标签页。Shift+Ctrl+Q:关闭终端。Shift+Alt+T:新建标签页。exit 指令也是同样的效果。Shift+Ctrl+C:复制。Shift+Ctrl+V:粘贴。

2023-06-02 09:28:39 187

原创 gcc g++ 区别

链接: 多个目标文件(二进制)结合库函数等综合成的能直接独立执行的执行文件——生成后缀为“.out”的文件。无论是 gcc 还是 g++,用 extern “c” 时,都是以 C 的命名方式来为symbol 命名,(2)如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义;(1)编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++;(1)后缀为.c的, gcc 把它当作是 c程序,而g++当作是 c++程序;

2023-04-17 20:29:01 527

原创 左值右值将亡值泛左值

满足下列条件之一。

2023-03-25 19:28:26 706

原创 remove_reference

在介绍remove_reference之前,我们先看一段代码上面的代码会输出什么?输出为4,因为decltype(a)返回a的类型,我们知道*a的类型实际上是int& ,所以此时修改a[0] 等同于修改了b看看remove_reference 的做了什么他封装了一个普通的模板类,并且typedef T type,主要看第二个,封装了一个引用类型的T&我们使用时remove_reference,就会被传到第二个实现中。

2023-03-25 19:27:01 98

原创 关于 move(sample).fun() 的思考

sample是个类, fun()是其子函数。

2023-03-25 19:24:36 513

原创 pstree 指令

pstree 将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root)。如果有指定使用者 id,则树状图只会显示该使用者所拥有的进程。

2023-03-18 19:52:29 352

原创 Linux下的五个查找命令:grep、find、locate、whereis、which

可以说是见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号’'是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。

2023-03-18 16:49:28 1859

原创 Linux指令ps指令

linux指令 ps指令

2023-03-14 08:50:00 323

原创 malloc free calloc realloc alloca

malloc free calloc realloc alloca

2023-03-12 21:24:03 908

原创 assert()宏函数

assert宏函数

2023-03-12 20:12:34 474

原创 Linux 端口配置文件

Linux 端口配置文件

2023-03-12 14:12:27 408

原创 linux中 s和t权限的说明

linux中 s和t权限的说明

2023-03-12 14:09:04 1983

原创 linux下新建用户和用户组 以及修改主机名称

linux下新建用户和用户组 以及修改主机名称

2023-03-12 14:07:32 567

原创 大端小端 网络字节序 主机字节序

大端小端 网络字节序 主机字节序

2023-03-05 18:53:14 74

原创 类之间的关系

类之间的关系

2022-08-14 21:14:33 131

原创 stl陷阱

文章目录术语erase函数:特殊关注点返回值C++98和C++11 区别总结其他:术语序列式容器:vector 、deque 、list 是序列式容器关联式容器:map 、 set 、 multimap 、 mutiset 是关联式容器顺序式容器:vector、deque容器其内部数据结构是一个数组, 可理解为是顺序式容器;节点式容器:相反的, map 、 set 、 multimap 、 mutiset 是节点式容器。erase函数:特殊关注点erase(iter)后,

2022-03-20 20:06:13 270

原创 stl删除优化历史

摘自:https://www.cnblogs.com/skyofbitbit/p/3648841.html例1:#include <iostream>#include <vector>using namespace std;void main( ) { vector<int> vectInt; int i; // 初始化vector容器 for (i = 0; i < 5; i++ ) {

2022-03-20 19:58:48 164

原创 fd_set和select函数

文章目录文件描述符fd_set结构体select函数文件描述符在Linux中,内核利用文件描述符即文件句柄,来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来指定待读写的文件。文件描述符是非负整数。fd_set结构体fd_set可以理解为一个集合,这个集合中存放的是文件描述符即文件句柄。fd_set集合可以通过下面的宏来进行人为来操作。1、FD_ZERO 用法:FD_ZERO(fd_set*); 用来清空fd_set集合,即让fd_s

2021-12-05 16:04:23 1627

原创 C语言函数指针

void (*pFun)(int); void glFun(int a) { return;}void main() { pFun = glFun; (*pFun)(2); } typedef 方式typedef void (*PTRFUN)(int);void glFun(int a){ return;}void main() { PTRFUN pFun; pFun = glFun; (*pFun)(2); }

2021-12-05 14:03:43 64

原创 include

#Include<> 和 #include “”区别<>去系统目录中找头文件,如果没有则报错。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。在.h文件(头文件)中static定义变量static变量的作用范围是一个文件虽然你写在一个头文件里,但在.c文件里引用的时候,只是把头文件内容复制进来而已,所以每个.c文件里的stati

2021-12-05 13:37:24 96

原创 Linux操作系统下三种配置环境变量的方法

可以通过echo指令查看环境变量值# echo $PATHPATH 代表的是可执行文件的搜索路径1.修改/etc/profile文件 (需要重启)在系统级的配置文件中,如/etc/profile中export 一个变量,那么这个变量就会在整个系统运行期间都起作用。在profile文件末尾加入:JAVA_HOME=/usr/share/jdk1.5.0_05PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOM

2021-11-27 07:41:18 897

原创 Linux 目录

/bin bin是Binary的缩写, 这个目录存放着最经常使用的命令。/sbins就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。/usr/bin 系统用户使用的应用程序。/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序。/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除

2021-11-21 20:11:51 708

原创 GDB命令

参考上位: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspxGDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。文章目录命令具体解释file <文件名>rcbdsnsinip <变量名称>displayundisplay <编号>help [命令名

2021-11-21 17:13:07 290

原创 svn指令

文章目录一、从版本库获取信息svn helpsvn info $URL查看工作空间信息若是目录地址,查看本地目录信息若无$DIR,默认为当前目录若是文件地址,查看本地文件信息svn list显示给定目录下的文件(相对当前目录的相对地址)显示当前目录下svn记录文件列表svn list $URL 不下载到本地查看目录中的文件svn log查看某个具体版本号的所有修改的记录查看版本5到19的历史信息查看当前目录的历史修改信息查看单个文件的历史修改信息查看$URL的历史信息svn diff比较本地的修改比较本地与

2021-11-07 17:10:41 1797

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除