自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

懒人_人懒

这个人很懒,什么都没留下....

  • 博客(95)
  • 收藏
  • 关注

原创 104规约(持续更新....)

1.  固定帧: 启动字符 + 长度 + 控制域一 + 控制域二 + 控制域三 + 控制域四常见报文:启动链路: 68 04 07 00 00 00            (U帧)启动链路确认: 68 04 0B 00 00 00     (U帧)测试帧: 68 04 43 00 00 00                 (U帧)测试确认: 68 04 83 00 00 00...

2018-03-06 08:27:18 18329 2

原创 利用第三方库实现sftp上传文件

封装一个类CSftpupload_sftp.h#define UPLOAD_SFTP_H#include <QString>#include <string>#include "libssh2_sftp.h"class CSftp{public:    CSftp();    ~CSftp();    bool Init(QString remotePath ,QStrin...

2018-02-09 09:42:32 4618 3

原创 “undefined reference to xxx” 几个解决途径

链接器常见问题

2023-01-30 11:07:34 229

原创 饿汉模式(线程安全)注意事项

饿汉模式(线程安全)注意事项

2022-09-19 09:27:52 207

原创 magic static (c++11)

c++11 magic static

2022-09-19 09:17:06 713

原创 static局部变量、static全局变量、static在类中的使用、static是否用在头文件?

第一个问题: 为什么要引入static关键字一个新东西的引入,一定是为了解决某个实际问题。static有以下几个地方使用:1.用于函数内部的局部静态变量,此时,它改变了局部变量的生命周期;比如:void fun1() void fun2(){ ...

2020-03-18 15:32:28 630

原创 BSS段

BSS段用来存放:1. 所有的未被显式初始化的全局变量和静态变量;(包括局部静态变量)2.所有被显式初始化为0的全局变量和静态变量。(包括局部静态变量)...

2020-03-18 09:59:47 265

原创 面向对象

1.什么是面向对象?2.什么是面向过程?3.面向对象和面向过程有什么联系和区别?ps:以上问题经常在面试中被问到,下面,就个人理解以大白话简单做个介绍,不到之处望指正。举例子说明:今天午餐你想吃湖南菜,辣椒炒肉。面向过程做法:【亲力亲为】 买辣椒、肉,洗菜,切菜,下锅翻炒,出锅。面向对象 做法 【指挥别人】老婆,我想吃辣椒炒肉,然后,老婆去买辣椒、肉,洗...

2020-03-16 15:03:30 191

原创 每天学点 linux 基础(持续更新...)

1. cd命令(改变目录) 上图中 cdQt 表示进入Qt目录 ps:cd全称为changediectory ,意味着每次改变目录,cd后即为所要改变后进入的目录...

2020-01-09 14:48:09 170

原创 cin.get(s,n)注意点

第一个注意点:cin.get(s,n)如果从键盘敲入回车,将导致cin失效!!!!第二个注意点:chartest[10] = "123";cin.get(test, 10);std::cout << test << std::endl;从键盘输入12345678901回车后,get从缓冲区中读取前9个字符,输出123456789,注意:...

2019-08-07 15:02:01 528

原创 cin.getline() 用法的危险之处

char s1[m] = "1";std::cin.getline(s1, n);char s2[w] = "2";std::cin.getline(s2,k);假设键盘输入字符数为d若s1和s2是连续内存区域,(即s2地址在前,s1地址在后的连续内存区域)① 当w < d < k时,s2的输入可能导致s1的内存区域中的值被修改;②当 d ...

2019-08-06 20:27:52 737

原创 std::istream::getline

std::istream& getline(char* s, stringsize n);std::istream& getline(char* s, stringsize n, char delim);从输入缓冲区中提取字符,存入c风格字符串,直到以下情况发生1.提取的字符为终止字符delim;2.已经提取了n个字符(包括终止空字符)3.遇到文件结束符...

2019-08-06 19:51:40 2150

原创 cin使用注意几点(持续更新...)

cin使用注意几点:1.cin可以忽略 有效输入之前 的分隔符(空格、制表符\t、换行符\n) 举例说明: charch = ‘a’; std::cin >> ch ; std::cout << ch << '\n'; 当从键盘输入 [enter] [enter] [enter]z 即输入...

2019-08-05 14:17:39 1791

原创 0 、 '0' 、 "0" 、 ’\0’ 区别

在说明这个问题前,首先要搞明白什么是ASCII码值不明白的看以下链接中的ASCII字符代码表:https://baike.baidu.com/pic/ASCII/309296/0/e850352ac65c103880a07b53bc119313b17e8941?fr=lemma&ct=single#aid=0&pic=e850352ac65c103880a07b53bc...

2019-06-27 19:57:37 106827 4

原创 c++ 关键字 mutable

今天来讲讲c++中关键字mutable在c++primer中mutable第一次出现在类中,在讲解常成员函数的时候引入的。问题来了,mutable有什么用?我们知道,c++类中引入const关键字在成员函数尾部,使函数成为常成员函数。这么做的目的是,在常成员函数内部,不允许修改调用它的对象的内部状态(即不许修改对象的成员变量的值)。!!看不懂?没关系,继...

2019-05-29 14:41:23 14421 3

原创 关于 类的常成员函数 声明和定义处 都需要加 const的原因

我们知道,类的常成员函数尾部加了const关键字,而且,声明和定义处必须都加const关键字。举个例子说明://a.hclass A{public: A(){} ~A(){} void display() const;};//a.cpp#include "a.h"#include <ios...

2019-05-29 10:05:07 2676

原创 【1天学习1个类】之一 【 QSize类 简单介绍 与 基本用法 入门 】

QSize 类每种类我们都用以下几个方面来介绍:1. 这个类是可以用来做什么?2. 有哪些属性?3. 怎么来定义它?(即构造函数等)4. 有哪些操作?5. 总结1. QSize类 用来 描述 一个 大小区域,用 宽 和 高 来表示的 一个矩形区域。2. 属性: 宽 和 高, 类型: 均为int3. 提供两个构造函数: ① QSi...

2019-04-30 10:33:24 2397

原创 c++ 中枚举的简单用法

1. 为什么会有枚举???(大概了解下) 答:任何新名词的产生都是为了解决某一个实际问题的。当然枚举的产生也同样如此,它是为了更方便的解决某一个问题(马上下面会说到),没有枚举也能解决问题,但是有了枚举能更方便、更清晰的解决问题。 举个例子: 我们玩一款角色扮演类游戏,都要先创建角色,如果角色有3种(狂战士、龙骑士、魔法师),我们该怎么定义...

2019-04-12 11:11:40 3979

原创 C++中一些很有道理的废话(持续更新....)

1. 每一个c++程序都包含一个或多个函数。其中有一个函数名必须为main。   说明:读起来没毛病,想想为什么??   每一个C++程序必须有,且只能有一个main函数,因为OS(操作系统)是通过调用main函数来运行c++程序的,所以,c++程序中必须有且有一个main函数。   问题来了,运行一个c++程序,第一个调用的函数是否一定是main函数呢?   见另一篇博文  c+...

2019-02-13 14:21:29 261

原创 采用 std::cin.get() 实现终端循环输入输出

直接上代码: #include &lt;iostream&gt;int main(){    char ch;    while(std::cin.get(ch))    {        std::cout &lt;&lt; ch &lt;&lt; std::endl;    }    return 0;} 以上代码,实现在终端输入一串字符,回...

2019-02-13 10:32:04 3908

原创 c++中,程序运行调用的第一个函数一定是main函数吗?

答案是:no 举个例子说明:main.cpp有如下代码: #include &lt;iostream&gt;C c;int main(){    A *pa = new A;    B b;    static D d;    deleta pa;    return 1;}说明: A、B、C、D 为四个类,请问这4个类的构造调用的顺序是...

2019-02-12 14:56:02 4790

原创 cout 声明与定义

头文件 iostream 中有如下声明:__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout;此处为声明 那么,cout 的定义在什么地方???答: 在 Microsoft Visual Studio 10.0\VC\crt\src 目录下 有个源文件 cout.cpp其中定义如下:__PURE_APPDOMAI...

2019-02-11 20:35:15 3080

原创 使用 cin 输入 string 对象

遇到这么一个问题:想从键盘输入一行字符串,然后输出到终端,不使用Qt方法一:         std::string myWords;         std::cin &gt;&gt; myWords;         std::cout &lt;&lt; myWords &lt;&lt; std::endl;运行程序,在界面输入 I create a new virtu...

2019-02-11 09:57:41 21057

原创 TCP/IP协议栈(协议族)

思考一个问题:为什么不同厂家、不同型号的计算机能相互通信??????原因在这里,TCP/IP 协议族 实现了这一目标。使得不同厂家、不同型号的计算机能相互通信!!!互联网协议(internet协议)???平时我们所说的TCP/IP是一个协议族,也叫协议栈。换句话说,internet协议是一个多种协议组合在一起的一种叫法。那么,它主要包括哪些协议?我们用 分层 的方式来说从上到下...

2018-11-19 19:05:16 1458

原创 linux下 文本操作 快捷键(持续更新。。。)

①  打开一个终端,新建一个123.txt文件命令如下:    touch 123.txt②  往123.txt输入如下内容     This is my first C++ program.      Welcome to my world!     Hello, Future!     Hello, Its me.命令如下:  vi 123.txt然后, 按 i...

2018-11-19 09:05:11 1873

原创 数据抽象、封装、继承、动态绑定

问题一、什么是面向对象程序设计?它包括哪些?问题二、面向对象程序设计为什么会用到类?问题三、 标题四个词分别代表什么含义?首先,回答问题一面向对象程序设计(OOP)包括以下几个部分:1. OOA(面向对象分析)2. OOD(面向对象设计)3. OOP(面向对象编程)4. OOT(面向对象测试)5. OOSM(面向对象软件维护)以上英文缩写,如果想知道全称,可...

2018-10-17 19:07:52 321

原创 常量指针 和 指针常量

两种叫法:  常量指针  和 指针常量关于两种网上说法不一,书上说法也不一致,所以,我的建议是一般别用这两个词,但是在具体的语义下需要能看懂就行。我们换一个说法来说明这两个问题:顶层const  和  底层const请问,this指针一般情况下是 顶层const  还是 底层 const?我相信,这难不倒大家,this指针默认指向一个对象,指向的对象地址不可变,所以是顶层con...

2018-09-20 10:49:04 894

原创 数据抽象、封装、类

先来说说两个概念: 数据抽象 和 封装第一个问题: 这两个概念从何而来?答:  数据抽象和封装 是类的基本思想。为什么这么说?以下用大白话来解释下 举个例子,一部手机,有 开关机按钮、音量键、显示屏,我们可以通过他们来开关机、调节音量、查看手机信息等。但是手里里面是怎么实现这些功能的我们不知道(我们也不需要知道,这是手机开发者的事情),我们是手机的使用者,我们只关心这些键的用途,里...

2018-09-20 09:33:44 1463

原创 c++ 构造函数初始化过程

    每个类都会为它的对象定义初始化的方式,用一个或几个特殊的函数去控制对象的初始化,我们把这些特殊的函数叫做 构造函数。    那么,问题来了,构造函数作用是什么?    答:为了初始化对象的数据成员。就是简单。别把构造函数想着多复杂。    那么,问题又来了,构造函数和普通的成员函数有什么相似和区别呢?    答: 构造函数与函数名与类名同名,没有返回值类型,有一个参数列表(...

2018-09-14 11:26:52 4208

原创 c++语言规定:不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置

片段一:int sc = 1;switch (sc){case 0:       int val = 10;       break;case 1:       val = 5;   // error,跳过了初始化       break;default:{}}分析: 此时 switch语句跳过case标签0中变量val的初始化语句,直接跳转...

2018-09-07 09:05:32 424

原创 32位 和 64位系统区别

1. 32位系统CPU一次可处理32位数据,即一次处理4个字节。 64位系统CPU一次可处理64位数据,即一次处理8个字节。 通俗一点说:32位,就相当于你拥有32个工人,每次能完成32个工人的工作量 64位,就相当于你拥有64个工人,每次能完成64个工人的工作量 总结:由32位系统过渡到64位系统,CPU处理...

2018-09-06 09:01:58 11695 1

原创 getline(std::cin, temp) 跳过一行的问题

问题: 如果在getline 函数前 调用 cin 读取变量,则 getline会忽略一行?????贴上代码:片段一:#include &lt;string&gt;#include &lt;iostream&gt;int main(int argc, char *argv[]){    std::string str;    std::cin &gt;&gt; str;...

2018-09-04 08:42:12 1998

原创 字面值常量 简介

字面值常量 分几种,如下1. 整型字面值常量    有几种表示方法: 八进制(012)、十进制(10)、十六进制(0xA)2. 浮点型字面值常量    两种表示方法:      3.1415      2.1e-2   0.       .001等3. bool型字面值常量    true  和  false4. 指针字面值常量    nullptr (c++11 ...

2018-08-29 16:23:58 2211

原创 简单类型转换

1. bool  flag = 42;   // flag返回 true,任何非零整数初始化bool变量,都为true2. int m1 = 10, m2 = 30;    unsigned int u1 = 15, u2 = 40;    std::cout &lt;&lt; m1 - m2 &lt;&lt; std::endl;  // 整型变量相减还是整型变量, -20   ...

2018-08-29 15:56:46 187

原创 使用const 常量 代替 宏定义 需注意的问题

1.  #define   PI   3.1415 这是一个很常见的宏定义    不过,在c++中,effective c++中曾指出过,尽量用const 定义常量,来替换宏定义。    const double PI = 3.1415;    好处: const 替换 宏定义后,编译时能进行类型检查,一旦出错后,比宏定义更方便调试。2. 我们来思考一个问题,如果多个文件需要使用 ...

2018-08-29 15:45:46 3818

原创 普通引用 和 const 引用 区别

1. c++ primer中有一条规定: 引用所绑定的类型和所引用的对象类型需严格匹配。除了两个例外(下面再说),我们先看看普通的引用情况:① int i = 3;      int &amp;ri = i;    //正确,引用绑定到int 变量i上② double d = 3.1415;    int &amp;rd = d;   //错误, 引用类型为 int ,所绑定对象类...

2018-08-29 15:25:18 12484 2

原创 重定向

1. 程序中的重定向  #include &lt;iostream&gt;   int main()   {      int a = 0;      int b = 0;      std::cin &gt;&gt; a &gt;&gt; b;      std::cout &lt;&lt; a + b &lt;&lt; std::endl;      retur...

2018-08-28 10:11:39 275

原创 从hello,world开始的思考

某天翻开 c++ primer,想到一个问题:    什么是程序?如果我问你,你能答出什么内容?    c++ primer 的版本:程序即函数,一个或多个函数,必须含有main函数(启动程序,系统调用main);    恍然大悟,原来每本书都开始就讲hello,world...    你的答案是什么?欢迎在评论区讨论...         ...

2018-08-27 11:26:01 145

原创 内存池、自由空间、堆内存 等名称解释(不间断更新。。。)

简单说说几个名词解释:(c++ primer 第五版)1. 内存池、自由空间、堆内存 其实是同一种概念的不同叫法。编译器分配的内存,一般在全局存储区,要么在栈内存等。堆内存,是程序员自己分配的内存,比如运算符 new用来在堆上分配内存,回收用delete 运算符。又或是,make_shared 分配存储,返回一个智能指针shared_ptr,当然,shared_ptr指向的对象内存...

2018-08-27 11:08:59 1315

原创 共享指针

简单介绍两种智能指针:1. shared_ptr    允许多个shared_ptr指向同一个对象, 即 “共享”一个对象2. unique_ptr    同一时刻,只允许一个unique_ptr指向一个对象,即 “独占”一个对象3. 共享指针 和 一般指针    共享指针 和 一般指针用法大致类同,主要区别在于: 共享指针负责自动释放它所指向的对象...

2018-08-27 09:58:00 1804

空空如也

空空如也

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

TA关注的人

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