![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
sinat_41852207
这个作者很懒,什么都没留下…
展开
-
好的c++开源项目学习
项目由简入难,来自一位程序员前辈的推荐1.json数据转换工具C语言cjson网址:https://sourceforge.net/projects/cjson/2.1990年写的小服务器端,非常老,但是还是能学到很多东西Tinyhttpd网址:https://github.com/EZLippi/Tinyhttpd/blob/master/httpd.c3.自己实现的s...原创 2020-04-12 23:42:39 · 333 阅读 · 0 评论 -
c++ extern关键字和全局变量
extern 作用:用于声明变量前面,表示这是声明而不是定义,具体的定义在别的文件中。int a; //这是定义int a = 1; //这也是定义extern int a; //这是声明extern int a = 1;//这是定义,extern没用了。一个变量只能定义一次,可以声明多次。想让一个变量变成全局变量该怎么做?即:想在一个文件中定义一个全局变量,然后在其...原创 2020-03-11 20:17:40 · 1151 阅读 · 0 评论 -
c++ string、int、char数组互相转换(方法简单)
一。数字--string(1)数字转string(c++11有的新方法)例:int i = 9;string str = to_string(i);(2)string转数字stoi();stol();stoul();stoll();stoull();stof()函数原型:int stoi (const string& str, size_t* ...原创 2020-03-08 23:50:46 · 1057 阅读 · 0 评论 -
c++关键字static的作用
一。面向过程设计时的static(1)静态变量 静态变量只初始化一次,未初始化的静态变量会默认初始化为0。静态全局变量: 静态全局变量只在本文件可见,外部文件无法访问静态局部变量: 而静态局部变量只在定义的作用域内可见,但他们的生存周期都是整个程序运行时期。(2)静态函数 静态函数主要是起到函数的...原创 2020-03-07 15:55:11 · 194 阅读 · 0 评论 -
c++程序提高效率的小细节
1.for(int i = 0 ; i<s.size(); ++i)for(int i = 0, len = s.size(); i<len; ++i)第二种避免多次调用size()函数,虽然第一种c++编译时会自动编译成内联函数,但还是第二种好 2.定义变量在循环外面比里面好在里面定义每次都会重新定义,如果是类的话,每次还都会调用构造函数和析构函数。建议大一点...原创 2019-01-28 12:39:25 · 332 阅读 · 0 评论 -
c++进程内存分段以及分段的目的
栈区int x = 0; int *p = NULL;堆区int *p = new int[20];全局区存储全局变量及静态变量常量区存储常量和字符串;string str = "hello";代码区存储逻辑代码的二进制...原创 2019-01-28 12:42:18 · 479 阅读 · 0 评论 -
c++函数模板和类模板的简单使用
函数模板:template<class T>然后定义的时候把要用模板类型的地方类型名改成T,使用的时候,所有T都要一样,否则,再加一个参数template<class T,class U>程序运行的时候自动根据传入参数的类型判断T,和一般使用函数一样也可以在函数名后面注明: function<int>(a);类模板:tem...原创 2019-01-28 12:46:24 · 189 阅读 · 0 评论 -
关于c++头文件的基础知识
1.#include "" 在当前目录里找#include <> 在系统目录里找include 作用是插入文件 2.iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名,前者使用更新的编译器将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的。...原创 2019-01-28 12:49:34 · 218 阅读 · 0 评论 -
指针和引用做函数形参的区别
指针变量可以被重复赋值或更改(引用则不行,一经赋值不能再改)指针变量可以为空(引用必须指向具体对象)所以指针更灵活 void change(int * p,int * q);调用:int num1 = 1;int num2 = 2;change(&num1,&num2) //而如果是引用,不用加&...原创 2019-01-28 12:53:19 · 904 阅读 · 0 评论 -
指针为什么要有类型
有一个问题,那就是既然指针都是4字节(32位),为什么要有不同类型的指针,只有一个不就好了吗?原因有两个:1.为了地址增量的方便看这个例子#include<iostream> using namespace std; int main(){ double b = 13; double *p_b = &b; int a = 9; int *p_a = &a...原创 2019-01-28 12:57:22 · 3807 阅读 · 1 评论 -
c++继承篇(is a,public protected private)
1.隐藏 派生类中定义和基类中一样的成员变量或成员函数结果是: 派生类对象直接调用的是派生类里面的成员,基类的成员被隐藏要想通过派生类对象调用基类成员也可以,在成员前面加上类名:: soldier.Person::eat(); 2.is a派生类对象可以给基类对象赋值,或函数形参时,本来应该传基类对象,传派生类对象也行。派生类比基类多的成员自动丢弃,其他赋值。不管继承了多少...原创 2019-01-28 12:35:24 · 227 阅读 · 0 评论 -
c++ 如何让函数返回数组
1,不要return数组的指针(即数组名),这样是错的函数体内部创建的变量都是局部变量,当函数运行结束的时候,都会抛弃,也就是说你只返回了一个temp指针,这个指针确实是你想要的,这没有问题,但是它指向的内容在函数结束也就是return的那一刻之后就已经物是人非了。所以你用这个这个指针去访问的内容也不是你想要的内容了。 2解决方法:动态内存分配,就是new和delete的配合使用...原创 2019-01-28 12:40:34 · 8471 阅读 · 0 评论 -
c++ 文件读写总结 使用c++11标准IO库
参考https://www.cnblogs.com/jikexianfeng/articles/5651661.html读取 >> 写入<<从控制台 到控制台从文件 到文件从字符串 到字符串include头文件iostreamfstreamsstream一istream对象 in >> a. 从键盘输入读...原创 2019-01-27 13:04:56 · 422 阅读 · 0 评论 -
NULL和nullptr的区别(c++)
看起来NULL和nullptr都是代表空指针,但是NULL在重载函数的时候却匹配到了参数为int的那个版本。这是因为在C++中,NULL的定义一般是这样的:#ifdef __cplusplus#define NULL 0#else#define NULL ((void*)0)#endif // __cplusplus其实NULL在C++中就是代表着0,这是因为...原创 2019-01-27 18:58:50 · 174 阅读 · 0 评论 -
生成随机数(c++)
方法:使用rand()函数和srand()函数即可单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767。不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变。其实,对于rand()的范围,我们是可以进行人为设定的,只需要在宏定义中定义一个random(int x)函数,...原创 2019-01-27 19:06:09 · 884 阅读 · 0 评论 -
c++变量命名规则
浅谈C++变量命名规则 匈牙利命名法的来历和介绍分类:C Plus Plus 匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部 分。举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard...原创 2019-01-27 19:30:05 · 4526 阅读 · 0 评论 -
new一个类对象和使用类名动态创建一个类对象有什么区别(c++)
参考:https://blog.csdn.net/u010355144/article/details/45457265举个简单的例子:class Domo{private: int x; int y;public: void Set(int a,int b):x(a),y(b){}void Print() { cout<<"("<<x<...原创 2019-01-27 19:34:51 · 5212 阅读 · 0 评论 -
c++ sizeof()的用法
sizeof(类)得到类的所有数据成员的类型的大小 若成员又是类,则要算上这个类里面每个成员的类型的大小 而若成员是类类型指针,则这个成员只占4...原创 2019-01-27 19:45:36 · 531 阅读 · 0 评论 -
二维vector初始化,赋值
一。二维vector初始化1. 采用构造函数 vector<vector<int>> vec(10, vector<int>(8)); //10行8列,全部初始化为零2.添加元素(每次添加一行)int a[] = { 1, 2, 3, 4 };vector<int> ivec(a, a + 4);//数组初始化vector,见最下面(...原创 2019-01-27 19:50:50 · 35342 阅读 · 0 评论 -
c++变量分为哪几类
变量:1.成员变量 在类的对象里面 类的成员函数可以自由使用成员变量2.本地变量 在函数体内部3.参数 和2是一个东西成员函数属于类。成员变量属于类的对象。静态成员除外(属于类) ...原创 2019-01-27 19:53:07 · 1160 阅读 · 0 评论 -
c++多态 ,虚函数,虚函数表,虚析构函数,纯虚函数,抽象类,接口类,运行时类型识别
一。虚函数(子类有和父类同名的成员函数,在父类函数前面加virtual,子类函数前面可加可不加,最好加)使父类指针指向子类对象后可以调用子类的成员(同名的那个)通过父类指针可以操作子类对象不加virtual,则父类指针调用的是父类的成员函数函数的覆盖和隐藏 加virtual是覆盖,不加是隐藏。隐藏是对于子类对象调用函数,这个函数子类父类都有,同名,此时父类的被隐藏。覆盖是对...原创 2019-01-27 20:00:50 · 343 阅读 · 0 评论 -
.h .lib .dll的关系
本文参考https://www.cnblogs.com/azbane/p/7364060.html.h .lib .dll三者的关系是:H文件作用是:声明函数接口DLL文件作用是: 函数可执行代码.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。 例如配置opencv时候:要在属性表里添加包含目录(头文件),库目录(dll),连接器里的附加依赖项(...原创 2019-01-27 12:27:56 · 1088 阅读 · 0 评论