
c++知识点
is_thinking
专注,认真
展开
-
C++ signal和sigaction信号处理
本文介绍两个信号处理机制signal和sigaction。一 signalvoid (*signal(int signo, void (*func)(int)))(int); // 该函数在不同的linux系统中可能会存在差别,该函数现在很少用 参数:int signo, void(* func)(int) 返回类型:参数为int型,返回void型函数指针 调用上述函数时,第一原创 2016-06-20 17:02:20 · 4092 阅读 · 0 评论 -
C++读取配置文件
外国人写的读取config文件转载 2016-08-22 14:33:17 · 1472 阅读 · 0 评论 -
c++ extern的用法,extern全局变量和static、const的的区别
作用一:当它与"C"一起连用时,如extern "C" void fun(int a, int b);,则编译器在编译fun这个函数名时按C的规则去翻译相应的函数名而不是C++的。作用二:当它不与"C"在一起修饰变量或函数时,如在头文件中,extern int g_nNum;,它的作用就是声明函数或变量的作用范围的关键字,其声明的函数和变量可以在本编译单元或其他编译单元中使用。转载 2016-08-24 08:55:43 · 13084 阅读 · 0 评论 -
孤儿进程和僵尸进程的区别
我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得转载 2016-08-23 23:17:20 · 2099 阅读 · 1 评论 -
C++随机整数
一 不限制数值的范围 rand()返回一个0到RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。二 限制范围 可以使用宏定义或者inline函数,多限制值取模。#define random(x) (rand()%x)三 上面的值可能会有重复,避免重复的话可以使用srand来先产生种子。 这里要用到time.h头文件,获取当前的时间来作为种子。因为如果原创 2016-09-03 09:26:45 · 1156 阅读 · 0 评论 -
一些软件公司在线笔试题
软件公司笔试题原创 2016-09-02 23:37:29 · 916 阅读 · 0 评论 -
new与malloc
new与malloc的区别。原创 2016-08-13 11:44:09 · 518 阅读 · 0 评论 -
strcpy、memcp、memset的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src); memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。 voi转载 2016-07-20 08:37:37 · 3783 阅读 · 0 评论 -
中缀表达式转为后缀表达式
中缀表达式与后缀表达式求值转载 2016-09-05 15:00:25 · 892 阅读 · 0 评论 -
C++和C对字符串操作总结
一 c语言的字符串 c语言中没有字符串这个数据类型,用两种方法来表示字符串,第一种是字符数组char s[],第二种是字符指针char *s, 两者有区别,不能任务是一样的,区别如下(不完整,后期再慢慢补充) 1 初始化和赋值 char[]字符串赋值c语言中可以用“=”对字符串初始化,但是不能用“=”对其赋值,否则会出现类似于如下的错误:error: incompatible types in原创 2016-06-24 11:04:54 · 4498 阅读 · 0 评论 -
C++面试题执行Test()会出现什么情况
第一:请问运行Test 函数会有什么样的结果?void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}分析:程序崩溃。因为GetMemory 并不能传递动态内存,T转载 2016-10-09 08:39:12 · 5670 阅读 · 0 评论 -
Linux串口编程(向空调发送十六进制指令)
Linux串口编程(向空调发送十六进制指令)原创 2016-07-12 11:55:48 · 7695 阅读 · 0 评论 -
C++中子类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下:1. 如果子类没有定义构造方法,则调用父类的无参原创 2016-08-21 09:54:14 · 659 阅读 · 0 评论 -
C++底层数据结构的实现原理
转载自:http://www.cnblogs.com/hustlijian/p/3611424.html C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也转载 2016-08-21 09:23:54 · 5353 阅读 · 0 评论 -
fork创建多进程
/* 创建多进程fork函数,fork函数是创建调用的进程副本,并非根据完全不同的程序创建进程,而是复制正在运行的调用 * fork函数的进程。两个进程都执行fork函数调用后的语句。 * 父进程:fork函数返回子进程ID, * 子进程:fork函数返回0 * */#include #include int gval = 10;int main(int argc, ch原创 2016-06-20 16:07:39 · 580 阅读 · 0 评论 -
C++ split 分割字符串
第一种方法:不使用split函数: main.cpp#include <iostream>#include <vector>#include <string>#include <cstdio>#include <cstring>#include <stdlib.h>#define OUT (std::cout)#define END (std::endl)std::vector<st转载 2016-07-12 11:34:38 · 2624 阅读 · 0 评论 -
C++多态:虚函数、指针、虚函数表
C++多态:虚函数、指针、虚函数表转载 2016-07-24 11:32:38 · 909 阅读 · 0 评论 -
Linux 下c获取当前时间(精确到秒和毫秒或者微秒)
获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 #include<iostream>#include <stdlib.h>#include <stdio.h>#include <sys/time.h>#include <unistd.h>int main(){ struct timeval tv; gettimeofday原创 2016-07-03 13:42:02 · 95113 阅读 · 4 评论 -
C的结构体和C++结构体
1.C的结构体和C++结构体的区别1.1 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。1.2 C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。1.3 C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。以上都转载 2016-07-03 22:13:59 · 849 阅读 · 0 评论 -
ubuntu下C++两种方法解析json
第一种 用jsoncpp,不过本人目前不知道如何在clion里面使用,只知道在命令行g++使用,哪位知道如何在clion里使用可以告诉我,谢谢。 如下步骤本人操作过两边,所以按照下面操作应该不会有问题,如有需要请认真阅读。 一、配置jsoncpp需要安装scons,在下面的网址下载jsoncpp和scons http://sourceforge.net/projects/jsoncpp/fi原创 2016-06-23 22:32:05 · 5979 阅读 · 1 评论 -
ubuntu用C++获取ip地址和mac地址
ubuntu获取ip地址mac地址原创 2016-07-20 08:50:50 · 6082 阅读 · 0 评论 -
堆,栈,内存泄露,内存溢出介绍
堆,栈,内存泄露,内存溢出介绍转载 2016-07-20 16:36:07 · 1656 阅读 · 0 评论 -
深拷贝与浅拷贝
对深拷贝与浅拷贝的再次理解记得11年底找工作的时候,面试时曾经遇到有面试官问的对深拷贝与浅拷贝的理解,那时候自己回来查了资料,写了篇博客,感觉自己理解了,其实理解的不深刻,最近在调试bug的时候,再次遇到深拷贝与浅拷贝,认真分析了,写写自己的心得吧。先说下自己的理解吧,浅拷贝,即在定义一个类A,转载 2016-08-03 23:09:02 · 374 阅读 · 0 评论 -
原来数组作为参数时候是可以退化成为指针的,我OUT了
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:”数组名就是指针”。很幸运,我的大学老师就是其中之一。时至今日,我日复转载 2016-08-07 11:33:46 · 736 阅读 · 1 评论 -
C++中重载、重写(覆盖)和隐藏的区别实例分析
1 重载 重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。2.隐藏:隐藏是指派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏。3.重写:重写翻译自override,也翻译成覆盖(更好一点),是指派生类中存在重新定义的函数。其函数转载 2016-10-18 08:31:05 · 374 阅读 · 0 评论