
C++
文章平均质量分 72
xiaoyuxianshenging
这个作者很懒,什么都没留下…
展开
-
System函数
Windows函数windows操作系统下system () 函数详解(主要是在C语言中的应用) 函数名: system功 能: 发出一个DOS命令用 法: int system(char *command);system函数已经被收录在标准c库中,可以直接调用程序例:#include stdlib.h>#include stdio.h>转载 2016-11-13 08:53:01 · 349 阅读 · 0 评论 -
标准库类型vector
标准库类型vector表示对象的集合,其中所有对象的类型都相同,集合中每个对象都有一个索引,通过索引可以找到并访问对象,也可以理解为vector为容器,vector是一个类模板。即在模板名字后面跟着一对尖括号,在括号内放上信息,提供的额外信息就是vector内所存放对象的类型,如:vector ivec; //ivec保存int型类型对象,则为vector类型vector svec;原创 2017-02-13 10:03:14 · 426 阅读 · 0 评论 -
迭代器简单介绍
通过使用下标运算符可以向string和vector对象进行访问,还有一种方法就是使用迭代器,就像是指针类型一样,实现对对象的间接访问,使用迭代器可以实现从一个元素移动到另一个元素的过程。begin和end迭代器如:vector v{a,b,c,d,e,f,,g,h};auto a = v.begin(),b = v.end(); //a表示v中的第一个元素,b表示v中尾元素后的下一原创 2017-02-13 10:48:11 · 441 阅读 · 0 评论 -
C++模板
引入C++模板,就先从函数重载说起,函数重载通过C++的检查机制检查出函数参数和所属类别的不同,如:定义一个参数比较的重载函数,参数的类型可以为int、double、float、char等类型,但是需要重写这几种代码,加大了程序员的开发代码量,为了更加方便的执行不同参数函数,引入了C++的模板机制。模板定义:模板也就是实现代码重写的机制,可以实现类型参数化,分为函数模板和类模板。函数模原创 2017-03-08 20:10:23 · 340 阅读 · 0 评论 -
泛型算法
findaccumulateequalfillfill_nback_inserterfront_inserterinsertercopyreplacesort(二个版本)uniquestable_sortfind_iffor_eachlambdabind原创 2017-02-26 11:13:35 · 304 阅读 · 0 评论 -
c++ primer中定义sales_data类,整个书店程序如下
自己也是c++初学者,刚开始对书中第七章中给出的代码看不懂,自己学的时候也是云里雾里的,今天用了小上午的时间把书中的代码整个敲出来。main.cpp代码如下://本程序将令sales_data类支持与sales_item类完全一样的操作集合//sales_data的接口应该包括以下操作//一个isbn成员函数,用于返回对象的ISBN编号//一个combine成员函数,用于将一个原创 2016-10-22 16:40:10 · 5691 阅读 · 0 评论 -
多重继承和多继承、虚函数、纯虚函数、抽象类、接口类
掌握多重继承和多继承的区别。多重继承:即基类A、派生类B(继承父类A)、派生类C(C继承父类B)。这里说明的是,基类A中的数据成员(前提:公有继承方式,)会被派生类B所继承,隐式的存放在派生类B的public下,此时派生类C公有继承父类B,C中则包含从B和A中的公有数据成员和函数。多继承:举个例子:基类:工人类、农民类,派生类:农民工类。农民工类继承了工人类和农民类的数据成员函原创 2017-03-07 16:25:26 · 1629 阅读 · 0 评论 -
try语句块和异常处理
一般当程序的某部分检测到异常即(异常检测),出现错误无法继续执行,则会抛出异常信息,通常被专门代码来处理即(异常处理)。我们用throw表达式获取异常信息,用try语句块内含多个catch子句来处理异常代码。throw 表达式程序的异常检测部分使用throw表达式来获得异常,其中表达式的类型就是抛出的异常类型,在stdexcept头文件中定义了几个常见的异常类型,如:runtime_e原创 2017-02-13 21:12:14 · 1423 阅读 · 0 评论 -
友元函数、友元类
由于采用类的机制,实现了数据的封装和隐藏,类的数据成员一般设为私有类型,成员函数则为公有类型,提供与外界连接的接口,但有时需要非类成员函数频频访问类内数据成员,则将其设为该类的友元函数,简称友元,同样还有友元类,是一类需要与另一类建立联系,保持调用关系,则也可以设为该类的友元类,友元可以增加代码的灵活性,提高运行效率(类型检查和数据成员和成员函数的安全性检查会消耗时间),但同样破坏了C++的封装性原创 2017-03-07 20:13:53 · 534 阅读 · 0 评论 -
Linux守护进程的编程实现
Linux 守护进程的编程方法守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。守护进程的编转载 2017-03-14 12:38:53 · 226 阅读 · 0 评论 -
c++ 继承重要理解
首先,为什么c++需要继承,理解继承到底是什么意思?继承分为哪三种继承方式?为什么需要继承?在编写大型程序时,往往有很多的类,每个类都有自己的数据成员和函数,但有些类之间的数据成员和函数却相同,为了节省代码量和工作时间,只需继承父类中的数据成员和函数即可。继承就像是如基类为人,派生类为士兵、工人。基类人有很多特性,如名字、年龄。派生类继承了基类中的特性,派生类士兵、工人,同样也有名字、原创 2017-03-03 11:18:53 · 6589 阅读 · 0 评论 -
含可变形参函数(initialize_list形参、可变参数模板)
先引入传递参数的两种方式,即值传递和引用传递,我们在编写程序时因为无法预知向函数传入几个实参,从而函数形参也无法确定,所以c++新标准提供了两种主要的方法,即1 如果实参类型相同,但数量未知,可以使用一个名为initialize_list的标准库类型。2 如果实参类型不用,也许数量也未知,使用可变参数模板。initialize_list的标准库类型使用时添加同名的头文件即#原创 2017-02-15 09:58:02 · 2747 阅读 · 0 评论 -
标准库类型string
标准库类型string是一种可变长的字符序列。vector和迭代器也是标准库类型,vector表示可变长的集合。初始化string对象初始化string对象有多种方法,如:string s1;//默认初始化,定义一个空字符串string s2 = “hello”; //拷贝初始化,s2是字符串字面值的副本string s3 = s2; //s3是s2的副本string s4原创 2017-02-12 15:28:36 · 221 阅读 · 0 评论 -
decltype类型指示符
返回值 decltype(表达式)[返回值的类型是表达式参数的类型]这个可也用来决定表达式的类型,就像Bjarne暗示的一样,如果我们需要去初始化某种类型的变量,auto是最简单的选择,但是如果我们所需的类型不是一个变量,例如返回值这时我们可也试一下decltype。现在我们回看一些例子我们先前做过的,[cpp] view原创 2017-02-11 17:36:19 · 230 阅读 · 0 评论 -
const 限定符、const引用、const指针,顶层const和底层const
const 指针:因为指针是对象,而引用不是,所以指针也可以是常量常量指针必须被初始化,而且一旦初始化成功,它的值(也就是存放在常量*p的对象的地址不在改变)即只指向这个对象如:int i = 33; int * const p = &i;即变量名p永远存放的是变量i的地址,p是一个常量指针,它指向的对象是一个整型变量const double j = 7.88;c原创 2016-10-22 20:36:37 · 414 阅读 · 0 评论 -
对string对象的操作,对string对象中字符的操作:
对string对象的操作://1 编写一段程序从标准输入中一次读入一整行//2 修改该程序使其一次读入一个词//为什么要用到getline()函数,因为在程序输入时难免会遇到输入一个空字符,但我又想让其把这个空字符输出来//这就要用到getline函数,因为输出流cout遇到空字符就会返回//getline()函数中形参是一个输入流和一个string对象,将输入流读的内容给st原创 2016-10-23 10:41:28 · 571 阅读 · 0 评论 -
指针
指针,其一指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象,其二,指针无需在定义是赋初值。定义指针类型是将声明符写成*d的形式,其中d是变量名,如:int * p1;//int * 为类型名,p1为变量名指针存放着某个对象的地址,要获取改地址,就要用到&取地址符#include#includeusing namespace原创 2016-10-22 19:13:24 · 224 阅读 · 0 评论 -
string类简介
c++可以使用string类型的变量来存储字符串,string使用起来比数组简单,要使用string类型必须在头文件中加入#includestring的初始化分为直接初始化、拷贝初始化、默认初始化直接初始化:string str1("student");//使用圆括号即可拷贝初始化:string str2 = "student1";//将字符串student拷贝到string原创 2016-10-20 15:23:46 · 446 阅读 · 0 评论 -
C++ this指针的理解
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针转载 2016-10-21 20:24:26 · 220 阅读 · 0 评论 -
extern c 问题
extern "C"的用法解析1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为转载 2016-12-14 14:17:10 · 232 阅读 · 0 评论 -
C++ 预处理命令
一、预处理的由来: 在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)。二、常见的预处理功能: 预处理器的主要作用就是: 把通过预处理的内建功能对一个转载 2016-12-14 14:40:33 · 412 阅读 · 0 评论 -
宏定义
宏定义是C语言中预处理功能其中的一种,有文件包含、条件编译、布局控制和宏替换。宏定义对于写好C语言十分重要,使用宏定义可以防止出错,提高代码的可移植性和可读性。宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符 字符串 例: #define PI 3.1415926 把程序中出现的PI全部换成3.1415926 ,可以原创 2016-12-14 14:49:29 · 650 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静转载 2017-02-17 17:04:19 · 280 阅读 · 0 评论 -
C++ 初始化方式
直接初始化和拷贝初始化如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化。当初始值只有一个时,使用直接初始化或拷贝初始化都行。如果用多个值进行初始化的情况,非要用拷贝初始化的方式处理也不是不可以,不过需要显式地创建一个(临时)对象用于拷贝。string s8=string转载 2017-02-09 21:01:53 · 3623 阅读 · 0 评论 -
变量的声明和定义的关系、extern关键字的使用
变量声明规定了变量的名字和类型,定义还申请存储空间,也可能会为变量赋一初值。注意:变量可以声明很多次,但定义只能定义一次,否则编译器将会报错。在编写复杂程序时,会有许多文件,需要有在文件中分享代码的方法,例如,在一个文件中代码可能需要另一个文件中定义的变量,说白了也就是(分离式编译)。为了支持分离式编译,c++支持了将变量的定义和声明分开,即使用extern关键字,只对变量原创 2017-02-10 10:28:33 · 4018 阅读 · 0 评论 -
指针和引用、复合类型的声明
引用引用是对对象起一个别名,即相互绑定的意思,引用不像指针那样可以指向不同对象,不可解绑,引用不是一个对象,所以必须进行初始化。如:int a;int &b = a;//即b是a的别名,a的值也是b的值,改变a或b的值两者值都会改变。引用只能绑定在对象上,不能绑定在字面值或某个表达式的结果上。如:int &i = 10;//错误,不能绑定在字面值上,初始值必须是一个对象。d原创 2017-02-10 15:20:25 · 374 阅读 · 0 评论 -
关于引用的含义,使用,引用返回左值
引用的定义:在c++中,变量的引用通过声明符&可以理解为对变量起个别名,两者的含义代表的意义相同。例如:int &d = a;//此时通过声明符&d对变量a起个别名,此时a和b代表的值相同,对a或者b赋值操作是相同的。//对变量声明一个引用并不会开辟内存单元,a和b代表同一单元(地址相同),引用必须初始化。int &c;//错误,引用必须初始化。引用返回左值:此处先引入左原创 2016-10-20 11:31:03 · 2058 阅读 · 0 评论