随笔分类 -  C++

摘要:1、cout经过缓冲后输出,默认情况下是显示器。可以重定向。 2、cerr不经过缓冲而直接输出,一般用于迅速输出出错信息,不可以被重定向。 阅读全文
posted @ 2018-08-08 15:24 narjaja 阅读(236) 评论(0) 推荐(0)
摘要:一、对于C文件 对于C文件gcc和g++所做的事情确实是一样的,g++在编译C文件时调用了gcc。 二、对于C++文件 1.预处理 预处理gcc与g++做了相同的事。 2.编译 gcc无法自动和c++的库文件进行连接。 g++去可以通过编译并且生成汇编文件。 3.汇编 gcc和g++在这个过程中做了 阅读全文
posted @ 2018-08-07 15:40 narjaja 阅读(584) 评论(0) 推荐(0)
摘要:一、C++默认编写的函数 如果类中没有定义,程序却调用了,编译器会产生一些函数: 1. default 构造函数 2. copy 构造函数 3. copy assignment 操作符 4. 析构函数(non virtual) 所以写下: 就好比写下: 这些函数都是public且inline。 惟有 阅读全文
posted @ 2018-07-17 14:11 narjaja 阅读(308) 评论(0) 推荐(0)
摘要:C++Primer中解释为: 引用更接近const指针,可以说是一种受限了的指针。 实际上时下述代码的伪装表示: 其中,引用rodents扮演的角色与表达式 pr相同。 注: 1.引用不可以为空,所以在定义时必须初始化。 2.引用是一个const指针,所以引用只能在定义时被初始化一次,且之后不可被更 阅读全文
posted @ 2018-07-12 17:44 narjaja 阅读(158) 评论(0) 推荐(0)
摘要:一、用const修饰函数的参数 函数参数类型前加const指明该参数为常量,在函数内部不可改变。 注:当参数为引用传递或者指针传递作为输出时,都不能加const 二、用const修饰函数的返回值 函数返回时,会把返回值复制到外部临时的存储单元中,存储类型由函数的返回类型来确定。 “值传递”加cons 阅读全文
posted @ 2018-07-12 17:13 narjaja 阅读(2880) 评论(0) 推荐(0)
摘要:在最开始C++只是C加上了一些面向对象的特性,C++最初的名字为C with Classes。后来C++又提出了一些不同于Class的特性:Exceptions(异常)、templates(模板)、STL(标准模板库)。现在的C++是一个多重泛型编程语言,同时支持过程形式、面向对象形式、泛型形式、元 阅读全文
posted @ 2018-07-11 15:24 narjaja 阅读(215) 评论(0) 推荐(0)
摘要:类型前加const修饰符限定变量为只读,称为常量,定义时必须初始化,且初始化后编译器不允许再修改常量的值。 一、常量的定义 const在类型前面 const在类型后面 总结 const在$ $左侧指针所指的值不可改变,const在$ $右侧指针不可改变。 二、常量(const)与变量(non con 阅读全文
posted @ 2018-07-06 22:39 narjaja 阅读(825) 评论(0) 推荐(0)
摘要:``` //初始化 std::vector data (10); std::vector data (10, 0); std::vector > data(10, std::vector(10, 1)); //插入指定内存的值 int* star; int num; std::vector data; std::copy(star, star + num, std::back_inserter(... 阅读全文
posted @ 2018-06-13 21:33 narjaja 阅读(118) 评论(0) 推荐(0)
摘要:转自 "dsw846" C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C ,Python 阅读全文
posted @ 2018-06-11 10:34 narjaja 阅读(189) 评论(0) 推荐(0)
摘要:在高级语言中,数据的类型常量和变量。 常量 常量就是在程序运行过程中其值不能改变的量,我们任意说一个数字、一个单词都是一个常量,例如3就是常量、apple也是常量,常量就相当于数学上常数的概念,只不过计算机的数据类型并不是只有数字,所以称之为常量。根据数据类型的不同又可分为数值常量、字符常量、字符串 阅读全文
posted @ 2018-06-06 10:44 narjaja 阅读(571) 评论(0) 推荐(0)
摘要:C++的内存划分为栈区、堆区、全局区/静态区、字符串常量和代码区。 栈区 由系统进行内存的管理。 主要存放函数的参数以及局部变量。在函数完成执行,系统自行释放栈区内存,不需要用户管理。整个程序的栈区的大小可以在编译器中由用户自行设定,VS中默认的栈区大小为1M,可通过VS手动更改栈的大小。64bit 阅读全文
posted @ 2018-06-06 10:08 narjaja 阅读(256) 评论(0) 推荐(0)
摘要:之前谈过 "友元函数" ,再说说友元类。 转自 "C++之“友元类”学习笔记" 什么是友元类 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。 友元类能做什么 友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们 阅读全文
posted @ 2018-06-04 16:00 narjaja 阅读(231) 评论(0) 推荐(0)
摘要:友元可以访问包含该友元的类的private或者protected成员。(这里的友元指的是友元函数或者友元类) 友元函数 友元函数的声明 友元函数的声明必须在包含其的类内部,可以放在私有部分也可以放在共有部分。 友元函数的作用域 全局作用域的友元函数:一个类的友元函数,且不作为其他类的成员函数,其作用 阅读全文
posted @ 2018-06-04 15:54 narjaja 阅读(506) 评论(0) 推荐(0)
摘要:转自 "吴秦" 什么是库 库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 回顾程序编译成可执行程序的步骤: 这里存在两种链接方式:静态链接、动态链接。 静态库 静态库对应的静态链接,会将汇编生成的目标文件.o与引用到的静态 阅读全文
posted @ 2018-05-31 22:47 narjaja 阅读(435) 评论(0) 推荐(0)
摘要:ps:下面所说 成员=成员变量+成员函数; 作用 由于对象与对象之间的成员变量是相互独立的。所以要想共用数据,则需要使用静态成员和静态函数。 空间分配 静态成员是在程序编译时分配空间,而在程序结束时释放空间。 ps:一般的成员在对象建立时会分配空间,在对象撤销时会释放。 声明和定义 静态成员的定义和 阅读全文
posted @ 2018-05-31 20:58 narjaja 阅读(702) 评论(0) 推荐(0)
摘要:转自 "Quinn0918的博客" 一、预编译 1.将所有的 define删除,并展开所有的宏定义; 2.处理所有的预编译指令,例如: if, elif, else, endif; 3.处理 include预编译指令,将被包含的文件插入到预编译指令的位置; 4.添加行号信息文件名信息,便于调试; 5 阅读全文
posted @ 2018-05-31 15:59 narjaja 阅读(2068) 评论(0) 推荐(0)
摘要:转化总结如下: 目标格式 源格式 string const char* char* char[] string NULL const char*=string.c_str(); const char*=string.c_str(); char*=const_cast<char*>(const cha 阅读全文
posted @ 2018-04-16 19:47 narjaja 阅读(259) 评论(0) 推荐(0)