u010765526
码龄12年
关注
提问 私信
  • 博客:159,647
    159,647
    总访问量
  • 62
    原创
  • 1,517,993
    排名
  • 28
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 加入CSDN时间: 2013-05-20
博客简介:

sanliangGoGoGo

查看详细资料
个人成就
  • 获得130次点赞
  • 内容获得21次评论
  • 获得455次收藏
创作历程
  • 19篇
    2020年
  • 26篇
    2019年
  • 11篇
    2018年
  • 6篇
    2017年
  • 1篇
    2014年
成就勋章
TA的专栏
  • c++
    8篇
  • libevent
  • redis
  • 数据结构
    4篇
  • linux
    11篇
  • C语言
    1篇
  • 网络编程
    16篇
  • leetcode
    5篇
  • unix环境高级编程
    2篇
  • linux进程间通信
    3篇
  • libevent
    2篇
  • wireshark
    1篇
  • redis
    4篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++构造函数、析构函数与抛出异常

1,【问题】 构造函数可以抛出异常么?析构函数可以吗?2,【分析】 从语法上来说,构造函数和析构函数都可以抛出异常。但从逻辑上和风险控制上,构造函数可以,析构函数不推荐抛出异常。(1)构造函数可以抛出异常无论何时,从构造函数中抛出异常都是可以的。动态创建对象要进行两个操作:分配内存和调用构造函数。若在分配内存时出错,会抛出bad_alloc异常;若在调用构造函数初始化时出错,会不会存在内存泄漏呢?答案是不会。new运算符保证不会出现内存泄漏:T *p = new T...
原创
发布博客 2020.08.20 ·
582 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Explicit Constructors(显式构造函数)

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p );//用C风格的字符串p作为初始化值//…}String s1 = “hello”;//OK 隐式转换,等价于String s1 = String(“hello”);但是有的时候可能会不需要这种隐式转换,如下:class String { String ( int...
原创
发布博客 2020.08.20 ·
262 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++之this指针

1. this指针的用处:  一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。  例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),t.
原创
发布博客 2020.07.25 ·
186 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

__cplusplus 和extern “C”

由于C++编译器需要支持函数的重载,会改变函数的名称,因此dll的导出函数通常是标准C定义的。这就使得C和C++的互相调用变得很常见。但是有时可能又会直接用C来调用,不想重新写代码,让标准C编写的dll函数定义在C和C++编译器下都能编译通过,通常会使用以下的格式:(这个格式在很多成熟的代码中很常见)#if defined(__cplusplus)extern "C" {#endif// 在这里写标准C程序,例如dll导出函数的定义#ifdef __cplusplus}#endi...
原创
发布博客 2020.07.03 ·
325 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

头文件unistd.h中的unistd是什么的缩写?

unixstandardheader -> unistd.hstandardinputoutputheader -> stdio.hstandardlibraryheader -> stdlib.h
原创
发布博客 2020.06.19 ·
1310 阅读 ·
9 点赞 ·
0 评论 ·
8 收藏

哪些函数可以成为虚函数,哪些函数不可以成为虚函数

一,什么是虚函数拥有 Virtual 关键字的函数称之为虚函数虚函数的作用是实现动态绑定的,也就是说程序在运行的时候动态的的选择合适的成员函数那么,有哪些函数可以成为虚函数?那些函数不可以成为虚函数?要成为虚函数必须满足两点,一就是这个函数依赖于对象调用,因为虚函数就是依赖于对象调用,因为虚函数是存在于虚函数表中,有一个虚函数指针指向这个虚表,所以要调用虚函数,必须通过虚函数指针,而虚函数指针是存在于对象中的。二就是这个函数必须可以取地址,因为我们的虚函数表中存放的是虚函数函数入口地址,如果
原创
发布博客 2020.06.14 ·
9278 阅读 ·
17 点赞 ·
1 评论 ·
48 收藏

c++之哪些成员函数不能被继承

C++中,并不是所有的成员函数都能被子类继承,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数、赋值运算符重载函数。一,构造函数  构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。  如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。 ..
原创
发布博客 2020.06.14 ·
7214 阅读 ·
5 点赞 ·
0 评论 ·
57 收藏

HTTP 401和403的区别

一句话:401 未认证响应-------是由于用户没有进行身份认证或者身份认证不对。403 拒绝响应----------是当用户通过了身份验证,但无权对给定资源执行请求的操作(比如没有读写权限)。引用书上的话来说明:There's a problem with 401 Unauthorized, the HTTP status code for authentication errors. And that’s just it: it’s for authentication, not.
原创
发布博客 2020.05.23 ·
1997 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

__attribute__中constructor和destructor

1,__attribute__介绍__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数  __attribute__语法格式为:__attrib...
原创
发布博客 2020.05.05 ·
148 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

什么情况下析构函数需要定义为虚函数?

一,为什么基类的析构函数是虚函数呢? 在实现多态时,当一个类被作为基类并且该基类对派生类的对象进行操作,在析构时防止只析构基类而不析构派生类的状况发生。把基类的析构函数设计为虚函数可以在基类的指针指向派生类对象时,用基类的指针删除派生类对象,避免内存泄漏。二,通过几个例子来看一下效果1,例子1:#include<iostream>using name...
原创
发布博客 2020.05.05 ·
743 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

析构函数

1,什么是析构函数 创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。 析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前...
原创
发布博客 2020.05.05 ·
364 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

从汇编角度看引用

引用类型到底是什么?它和指针有什么关系?它本身占用内存空间吗? 带着这些疑问,我们来进行分析。 先看代码:#include <stdio.h>#include <iostream>using namespace std;void main(){ int x = 1; int &b = x;}通过汇编查看代码如下:9...
原创
发布博客 2020.05.04 ·
385 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

vfork创建的子进程与父进程地址空间关系

存储unix编程在《UNIX环境高级编程》一书的第八章中,有一道课后习题如下:回忆图7-3典型的存储空间布局。由于对应于每个函数调用的栈帧通常存储在栈中,并在调用vfork后,子进程运行在父进程的地址空间中,如果不是在main函数中而是在另一个函数中调用vfork,以后子进程从该函数返回时,将会发生什么情况?作者Rich Stevens是一位大师,留下这么一题必有其深意,于是结合《深...
原创
发布博客 2020.05.04 ·
955 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ps 命令查看进程下的线程及线程状态

查看java所有线程ps –eLf | grep java查看进程下的所有线程cpu利用率top -H -p 25120其中25120为Java进程号。下图红色标注的地方为线程状态。其中总数为28,当前运行的线程为0,28个线程睡眠,没有终止的线程或僵尸线程。https://blog.csdn.net/xiangguiwang/article/details/7946...
原创
发布博客 2020.05.03 ·
1101 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

进程上下文切换与和线程上下文切换的区别

1.首先,需要搞明白什么是上下文切换?上下文切换就是从当前执行任务切换到另一个任务执行的过程。但是,为了确保下次能从正确的位置继续执行,在切换之前,会保存上一个任务的状态。2. 然后,需要明白进程与线程的区别?(网上很多,这里简单说明)1).线程是进程的一部分。进程是表示资源分配的基本单位,又是调度运行的基本单位,是程序执行的一个实例; 线程是进程中执行运算的最小单位,即执行处理机调度的...
原创
发布博客 2020.05.03 ·
2294 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

进程或线程持有锁期间终止了,怎么办?

1,进程终止: 进程终止时系统不会自动释放所持有的互斥锁、读写锁和Posix信号量,进程终止时内核总是自动清理的唯一同步锁类型是fcntl记录锁。System V信号量,应用程序可以选择进程终止时内核是否自动清理某个信号量。2,线程终止: 1),一个线程也可以在持有某个互斥锁期间终止,自己调用pthread_exit或被另一个线程取消。如果线程调用pthread...
原创
发布博客 2020.03.30 ·
1616 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

二维数组如何申请和释放

1,二维数组的申请typedef struct dictht { dictEntry **table; unsigned long size; unsigned long sizemask; unsigned long used;} dictht;typedef struct dictEntry { void *key; union {...
原创
发布博客 2020.03.04 ·
2002 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

程序结束后,malloc申请的内存会被释放掉吗

1,有这么一个问题,下面这段程序执行完毕后,malloc的内存会释放吗?int main () { int *p = malloc(10 * sizeof *p); *p = 42; return 0; //Exiting without freeing the allocated memory} 这段程序运行完后,p 申请的malloc地址会被释放掉吗? 会的。T...
原创
发布博客 2020.02.24 ·
8719 阅读 ·
21 点赞 ·
1 评论 ·
39 收藏

linux 文件描述符与文件指针 详解

简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针file。1,文件描述符 文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;而流(如: fopen)返回的是一个FILE结构指针, FILE结构是包含有文件...
原创
发布博客 2020.02.23 ·
356 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

xinetd-master.zip

发布资源 2019.12.01 ·
zip
加载更多