![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++基础知识
文章平均质量分 60
西瓜游侠
希望自己能够开心
展开
-
C++ 模板详解(一)
转载出处:http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.htmlC++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模转载 2015-12-12 08:57:56 · 531 阅读 · 0 评论 -
什么时候使用指针?什么时候使用引用?什么时候应该按值传递?
何时使用引用参数使用引用参数的主要原因有两个:(1)程序员能够修改调用函数中的数据对象。(2)通过传递引用而不是整个数据对象,可以提高程序的运行速度。什么时候使用指针?什么时候使用引用?什么时候应该按值传递?下面是一些指导原则: 对于那些函数,它们只使用传递过来的值,而不对值进行修改。 (1)如原创 2017-02-24 15:53:34 · 14444 阅读 · 0 评论 -
C++函数 默认参数
C++函数默认参数默认参数指的是当函数调用中省略了实参时自动使用的一个值,当传入了实参,则覆盖这个默认值。(1)必须通过函数原型设置默认参数的值。由于编译器通过查看原型来了解函数所使用的参数数目,因此函数原型也必须将可能的默认参数告知程序。方法是将默认值赋给原型中的参数。例如 char *left(const char *str, int n = 1);(2原创 2017-02-24 19:36:05 · 573 阅读 · 0 评论 -
C++头文件(.h)中常包含的内容
C++头文件(.h)中常包含的内容:(1)函数原型。(2)使用#define 或者 const 定义的符号常量。(3)结构声明。(4)类声明。(5)模板声明。(6)内联函数。原创 2017-02-25 20:07:40 · 1978 阅读 · 0 评论 -
C++中 int、string等类型转换方法
1、int 和 string 互相转换(1)int ==> stringstring int2str(const int i){ stringstream ss; ss << i; return ss.str();}(2)string ==> intint str2int(const string s){ stringstream ss(s); int te原创 2017-03-08 16:55:33 · 368 阅读 · 0 评论 -
【C++ Primer】文本查询程序再探
textquery.h#ifndef _TEXTQUERY_H#define _TEXTQUERY_H#include #include #include #include #include #include #include #include #include class QueryResult; //查询结果类class TextQuery; //文本查询类原创 2017-03-05 15:40:03 · 2282 阅读 · 2 评论 -
【C++ Primer 第5版 笔记】第7章 类
转载出处:http://blog.csdn.net/wwh578867817/article/details/41593553类:简单来说就是数据和它的操作的一种封装,内部提供接口函数1.“ 定义 ”在类内部的函数是隐式inline的。2.this成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。用请求该函数的对象的地址来初始化th转载 2017-02-27 14:40:45 · 863 阅读 · 0 评论 -
C++ 虚函数 与 纯虚函数
转载:http://blog.csdn.net/lisonglisonglisong/article/details/37850709 面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承、动态绑定。通过数据抽象,可以使类的接口与实现分离;使用继承,可以更容易地定义与其他类相似但不完全相同的新类;使用动态绑定,可以在转载 2017-03-28 14:50:54 · 301 阅读 · 0 评论 -
VS 工程项目中用于获取当前项目根目录的方法
在VS中定位当前工程项目的根目录!涉及到:#include 头文件中的GetCurrentDirectory()方法和GetModuleFileName()方法。file_manager.h#pragma once#include #include using namespace std;class FileManager{public: static stri原创 2017-03-12 14:18:47 · 9272 阅读 · 1 评论 -
C++Primer第11章 一个单词转换的map【程序】
程序的功能:从规则文件rule.txt读入转换的规则,生成map从待转换的文件file.txt读取文本,进行单词转换。main.cpp#include #include #include #include #include using namespace std;//单词转换函数const string word_transform(ifstream &m原创 2017-03-22 09:35:20 · 711 阅读 · 1 评论 -
C++ 中的 "tuple"(元组)容器
转载出处:http://blog.csdn.net/caroline_wendy/article/details/17265569头文件: #include tuple容器(元组), 是表示元组容器, 是不包含任何结构的,快速而低质(粗制滥造, quick and dirty)的, 可以用于函数返回多个返回值;tuple容器, 可以使用直接初始化, 和"转载 2017-03-14 16:33:57 · 1374 阅读 · 0 评论 -
C++实现字符串分割函数 split
转载:http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.htmlC++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了。列几个常用方法以备不时之需。 方法一: 利用STL自己实现split 函数(常用,简单,直观)原型: vector split(const string转载 2017-03-15 09:19:07 · 3828 阅读 · 0 评论 -
C++ 栈对象 堆对象 理解
转载:http://blog.csdn.net/sdnu111111111/article/details/38707923在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。1、静态建立类对象:是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用转载 2017-03-25 10:09:27 · 1478 阅读 · 0 评论 -
Clion如何编译支持pthread
当我们使用CLion编写C/C++程序的时候,如果使用了POSIX的pthread.h中的函数,比如pthread_create、pthread_join等,当我们点击Run(Build)的时候,会报下面的错误信息:/home/tao/program/thread/Thread.cpp:40:对‘pthread_create’未定义的引用/home/tao/program/thre原创 2017-04-02 13:52:46 · 8391 阅读 · 2 评论 -
【C++ Primer 第5版 笔记】第12章 动态内存与智能指针
转载:http://blog.csdn.net/wwh578867817/article/details/41866315第 12 章 动态内存 与 智能指针静态内存用来保存:(1)局部static对象。(2)类的static数据成员。(3)定义在任何函数之外的变量。栈内存用来保存:(1)定义在函数内的非static对象。堆用来存转载 2017-03-01 10:31:42 · 582 阅读 · 0 评论 -
C++ 成员运算符(. 和 ->)
c++成员运算符原创 2016-05-17 16:14:58 · 2763 阅读 · 0 评论 -
C++ 模板详解(二)
转载出处:http://www.cnblogs.com/gw811/archive/2012/10/25/2736224.htmlC++模板 四、类模板的默认模板类型形参 1、可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值。 2、类模板的类型形参默认值形式为转载 2015-12-12 09:34:57 · 456 阅读 · 0 评论 -
【C++】初始化与清除(构造函数与析构函数)
一、构造函数 C++提供了构造函数(constructor)来处理对象的初始化。 在建立对象时自动执行。 构造函数的名字必须与类名同名,它不具有任何类型,不返回任何值。原创 2016-01-11 15:34:40 · 2519 阅读 · 0 评论 -
C++中数组和容器的区别与联系
创建方式:创建数组时必须指定其大小;而容器不必指定,可动态改变其大小。存储方式:数组在内存空间上是连续存储的;而容器中顺序容器vector和deque是连续存储的(deque与vector 不同的是它支持高效地在其首部插入和删除元素),但list是链式存储的。访问效率:访问数组元素时可根据数组下标直接访问相应位置的元素;而容器中顺序容器vec转载 2016-01-12 09:47:53 · 1378 阅读 · 0 评论 -
C++枚举类型enum
转载地址:http://blog.csdn.net/weitian_liang/archive/2009/03/12/3982575.aspx 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内有七天,一年有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C++语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中转载 2016-01-12 09:50:15 · 7100 阅读 · 0 评论 -
C++中const关键字详解
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const 对象名 常成员函数:转载 2016-01-13 09:13:07 · 380 阅读 · 0 评论 -
void 与 void* 详解
转载出处:http://zhengdl126.iteye.com/blog/1739165void 与void* 详解void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类转载 2016-01-13 09:55:01 · 380 阅读 · 0 评论 -
C++指针与引用
引用的一些规则 如下: (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。转载 2016-01-14 09:31:11 · 281 阅读 · 0 评论 -
C/C++中extern关键字详解
转载地址:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第转载 2016-01-14 10:41:01 · 226 阅读 · 0 评论 -
auto、static、register、extern
auto关键字:auto对象和变量被存储在栈中,它的生命周期仅存在于它的声明所在的块(block)中。在块中定义的块如果不加其它的修饰符则都是auto类型的。auto关键字可以省去。auto对象和变量对外部模块都是不可见的。static关键字:它是C,C++中都存在的关键字,它主要有三种使用方式,其中前两种只指在C语言中使用,第三种在C++中使用。(1)局部静态变量 (2)原创 2016-01-14 10:50:43 · 623 阅读 · 0 评论 -
printf输出格式总结
printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf函数调用的一般形式printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为:原创 2016-03-08 20:30:07 · 569 阅读 · 0 评论 -
static函数与普通函数
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错转载 2016-04-26 23:05:52 · 334 阅读 · 0 评论