![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
德智
r4tete
展开
-
学习c ++ 编程需要学习的内容
1.c++语言以及多进程共享信息以及多线程信息共享和僵尸进程。(C++ Primer、c++标准程序库、The C++ Standard Library Extensions、Scott Myeyers的EffectiveC++、《(More)Exceptional C++》、《Effective STL》、《C++编程规范》、《深入探索C++对象模型》、《Imperfect C++》、《C++沉...原创 2020-03-29 13:19:24 · 2677 阅读 · 0 评论 -
c ++ 易错知识细节
1.不要返回局部对象的引用或指针。 函数完成后,它所占用的存储空间也随之被释放掉。因此函数终止意味着局部变量的引用将指向不再有效的内存区域: //严重错误:这个函数试图返回局部对象的引用 const string &manip() { string ret; //以某种方式改变一下ret ...原创 2019-09-17 15:33:23 · 809 阅读 · 0 评论 -
函数指针
1.函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定类型。函数的类型由它的返回类型和形参共同决定,与函数名无关。例如://比较两个string对象的长度bool lengthCompare(const string &,const string &);该函数的类型是bool (const string &,const string &)。要想声明一...原创 2018-03-07 21:08:48 · 213 阅读 · 0 评论 -
c++容器
1.array注意的是,虽然我们不能对内置数组类型进行拷贝或对象赋值操作,但array并无限制:int digs[10] = {1,2,3,4,54,6,7,8,9,0};int cpy[10] = digs; //错误:内置数组不支持拷贝或赋值array<int,10> digits = {1,2,3,4,5,6,7,8,9,0};array<int,10>copy = ...原创 2018-03-14 19:27:25 · 227 阅读 · 0 评论 -
函数返回值的注意事项
函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针。1.声明一个返回数组指针的韩函数,返回数组指针的函数形式如下所示:Type (*function(parameter_list)) [dimension] //类似于其他数组的声明,Type表示元素的类型,dimension表示数组的大小。(*function(parameter_list))两端的括号必须存在。如果没有这对括号...原创 2018-02-28 19:33:18 · 1279 阅读 · 0 评论 -
指针形参的注意事项
//改函数接受一个指针,然后将指针所指的值置为0void reset(int *ip){ *ip = 0; //改变指针ip所指对象的值 ip = 0; //只改变了ip的局部拷贝,实参未被改变}调用reset函数之后,实参所指的对象被置为0,但是实参本身并没有改变:int i = 42;reset(&i); //改变i的值二非i的地址cout << "i ...原创 2018-03-01 20:30:41 · 267 阅读 · 0 评论 -
顶层const的示例
1.顶层const作用于对象本身const int ci = 42; //不能改变ci,const是顶层的int i = ci; //正确:当拷贝ci时,忽略了它的顶层constint *const p = &i; //const是顶层的,不能给p赋值*p = 0; //正确:通过p改变对象的内容是允许的,现在i变成了02.void fcn(const int i) {/*fcn能够读取i...原创 2018-03-02 12:55:12 · 203 阅读 · 0 评论 -
const_cast 和 static_cast的注意事项
const char *cp; char *q = static_cast<char*>(cp); //错误:static_cast不能转换掉const性质static_cast<string>(cp); //正确:字符串字面值转换成string类型const_cast<string>(cp); //错误:const_cast只改变常量属性...原创 2018-02-24 13:10:04 · 846 阅读 · 0 评论 -
数组形参
1.尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式//尽管形式不同,但这三个print函数时等价的//每个函数都有一个const int*类型的形参void print(const int*);void print(const int[]);void print(const int[10]);//这里的维度表示我们期望数组含有多少元素,实际不一定2.数组引用形参c++语言允许...原创 2018-03-05 11:43:42 · 1887 阅读 · 0 评论 -
递归
如果一个函数调用了它自身,不管这种调用是直接的还是间接的,都称该函数为递归函数。原创 2018-03-05 17:49:58 · 139 阅读 · 0 评论 -
学习c++
下面的是学C++时要注意的。绝对经典。!! 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷...转载 2018-03-14 12:01:28 · 165 阅读 · 0 评论 -
C/C++必看书籍
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/13000431找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,...转载 2018-03-28 13:00:42 · 11351 阅读 · 1 评论 -
c++问题
1.什么时候用new,什么时候用malloc。2.析构函数为什么用虚函数。3.构造和析构时访问父子类的顺序。4.string的拷贝函数。5.链表6.对象的加减。7.数据库的引擎。8.构造函数与类的区别。。9. extern"C".10. 单例类。11.tcp连接与断开的步骤,waittime在哪一个阶段。12.linux下查找崩溃。13.map的操作的时间复杂度。...原创 2018-07-19 23:59:10 · 321 阅读 · 0 评论 -
学习c++的注意事项
1.语言本身书籍,推荐c++primer.2.c++网络编写。3.多线程的编写。4.数据库的使用以及原理的掌握。5.设计模式。6.算法。7.实际工作中的项目、框架、引擎的开发等。8.学习其他语音c、java、.net、golong等。9.找工作前3个月网上的面试的习题要掌握。...原创 2018-07-22 03:07:07 · 422 阅读 · 0 评论 -
数组声明和定义的注意事项
一、不允许数组拷贝和赋值int a[] = {1,2,3}; //含有3个整数的数组int a2[]= a;//错误:不允许使用一个数组初始化另一个数组a2 = a; //错误:不能把一个数组直接赋值给另一个数组二、复杂的数组声明int arr[10];int *ptrs[10]; //ptrs是含有10个整形指针的数组int &refs[10]=/*?*/; //错误:不存在引用的数组i...原创 2018-02-08 11:53:26 · 17697 阅读 · 1 评论 -
内联函数
1.内联函数可避免函数调用的开销 将函数指定为内联函数,通常就是将它在每个调用点上“内联地”展开。可消除函数的运行时的开销。在函数的返回类型前面加上关键字inline,这样就可以将它声明成内联函数了。 一般来说,内联机制用于优化规模较小、流程直接、频繁调用的函数。...原创 2018-03-07 20:05:30 · 483 阅读 · 0 评论 -
新建的vs项目,在debug调试时,断点不可用时的解决方案
(1)项目-〉属性-〉配置属性-〉C/C++-〉常规-〉调试信息格式,这里不能为“禁用”。(2)项目-〉属性-〉配置属性-〉链接器-〉调试-〉生成调试信息,这里设为“优化以便于调试 (/DEBUG)”。转载 2017-09-19 16:20:22 · 2575 阅读 · 0 评论 -
在ubuntu16.04下安装clion
安装CLion1、从CLion官网下载最新版CLion安装包,其Linux版是.tar.gz的压缩包。方法一:去官网直接下载 https://www.jetbrains.com/clion/ https://www.jetbrains.com/clion/download/#section=linux转载 2017-10-31 11:11:35 · 9964 阅读 · 0 评论 -
vmware安装ubuntu16.04网址
http://www.linuxidc.com/Linux/2016-11/137241.htm转载 2017-10-24 15:06:23 · 233 阅读 · 0 评论 -
解决clion2016.3不能支持搜狗输入法的问题
参考链接http://www.cnblogs.com/chentq/p/4975794.html首先系统已经安装了搜狗输入法并在浏览器里面可以使用打开clion.sh在文件头部添加export GTK_IM_MODULE=fcitxexport QT_IM_MODULE=fcitxexport XMODIFIERS=@im=fcitx重启操作系统后打开clion216.3测试可以成功使转载 2017-11-01 20:49:28 · 1460 阅读 · 0 评论 -
C++ 父类指针指向子类对象||子类指针指向父类对象的理解
父类子类指针函数调用注意事项1,如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数(静态联翩)2,如果以一个衍生类指针指向一个基础类对象,必须先做强制转型动作(explicit cast),这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定义)3,如果基础类和衍生类定义了相同名称的成员函数,那么通过对象指转载 2017-12-26 13:07:17 · 8275 阅读 · 1 评论 -
函数指针的应用
关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。 //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一转载 2018-01-04 12:20:21 · 366 阅读 · 0 评论 -
c++参考资料(google c++ style guide)
google c++ style guide1.https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=google%20c%2B%2B%20style%20guide&oq=google%2520c%252B%252B%2520style%2520guide&rsv_pq=aa268385000195f0&rsv原创 2018-02-01 16:21:54 · 479 阅读 · 1 评论 -
学习c++经典书籍
1.《c++ primer》2.《c++标准程序库》3.《Effective c++》作者Scott Meyers4.《C++ Concurrency in Action》作者Anthony Williams ,学习用标准C++开发并发程序的最佳选择。5.国内书,陈硕的《Linux多线程服务器编程》6.数据库。7.设计模式。 ...原创 2018-02-01 16:28:52 · 565 阅读 · 0 评论 -
常量指针
typedef char *pstring;const pstring cstr = 0;//cstr是指向char的常量指针const pstring *ps;//ps是一个指针,它的对象是指向char的常量指针。上述两条声明语句的基本数据类型都是const pstring,const是对给定类型的修饰。pstring实际上是指向char的指针,因此,const pstring就是指原创 2018-02-01 20:12:34 · 293 阅读 · 2 评论 -
c++使用auto的注意事项
1.使用auto也能在一条语句中声明多个变量。因为一条声明语句只能有一个基本数据类型,所以该语句中所有变量的初始基本类型都必须一样:auto i = 0,*p=&i; //正确:i是整数、p是整型指针。auto sz = 0,pi = 3.14; //错误:sz和pi的类型不一致。2.const auto &j = 42;//正确:可以为常量引用绑定字面值。3.auto &h =原创 2018-02-01 20:27:56 · 1425 阅读 · 0 评论 -
decltype的注意事项
1.auto可忽略顶层const,而decltype不会。2. int i = 42,*p = &i,&r = i;decltype(r + 0) b;//正确:加法的结果是int,因此b是一个(未初始化的)intdecltype(*p) c;//错误:c是int&,必须初始化。如果表达式的内容是解引用操作,则decltype将得到引用类型。3.//decltype的原创 2018-02-01 21:09:43 · 328 阅读 · 0 评论 -
void*的注意事项
void*可以指向任意非常量的指针类型,不能执行解引用操作。原创 2018-02-02 14:35:57 · 372 阅读 · 0 评论 -
clion的学习资料
1.官方指南:https://www.jetbrains.com/help/clion/meet-clion.html2.下面是一些快捷键的例子:快捷键配置File->Setting->Keymap->Keymaps 选择Visual Studio风格代码提示的匹配模式File->Setting->Editor->Code Completion Case sen原创 2018-02-05 10:06:05 · 2400 阅读 · 0 评论 -
vector模板的初始化注意事项
一、一般情况下{}里面表示的是具体初始化的元素值,()里面表示的是容器的容量和默认初始化的值或者指定初始化的值。vectorv1;vectorv2(v1);vectorv3 = v1;vectorv4(10, 1);vectorv5(1);vectorv6{ 1,2,3,4,5 };vectorv7 = { 1,2,3,4,5,6 };二、另一方面,如果初始化时原创 2018-02-07 10:29:07 · 748 阅读 · 0 评论 -
vector中erase用法注意事项
vector::erase():从指定容器删除指定位置的元素或某段范围内的元素vector::erase()方法有两种重载形式如下:iterator erase( iterator _Where);iterator erase( iterator _First, iterator _Last);如果是删除指定位置的元素时:返回值是一个迭代器,指向删除元素下一个元转载 2016-09-22 15:48:52 · 339 阅读 · 0 评论