
C++基础
文章平均质量分 72
Cainv89
业精于勤荒于嬉,行成于思毁于随。
展开
-
C++基础---字符串(string型字符串)
1. 字符串(string型字符串)1.1 C++字符串的定义字符串:是以空字符(即 ‘\0’)结尾的字符数组。 注:‘\0’是一个空字符标志,它的ASCII码为0。C++中有好多处理字符串的函数,他们都是以空字符为结束标志,如cin和cout,他们在碰到空字符后将会停止输入或输出。1.2 string型字符串string型字符串:是C++风格的字符串。string型字符串:是C++的STL提供的一原创 2015-09-03 17:56:48 · 1975 阅读 · 2 评论 -
C++基础---浅层及深层拷贝构造函数
1. 浅层及深层拷贝构造函数1.1 拷贝构造函数的定义拷贝构造函数:又称复制构造函数,是一种特殊的构造函数;拷贝构造函数:由编译器调用来完成一些基于同一类的其他对象的构建及初始化;拷贝构造函数:唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制;拷贝构造函数:经常用在函数调用时用户定义类型的值传递及返回;拷贝构造函数:要调用基类的拷贝构造函数和成员函数;拷贝构造函数:如果可原创 2015-09-04 15:59:03 · 1723 阅读 · 0 评论 -
C++基础---构造函数与关键字explicit
1. 构造函数与关键字explicit1.1 关键字explicit针对C++中一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色,一是个构造器 ;二是个默认且隐含的类型转换操作符。所以,有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。这样看起来原创 2015-09-04 15:46:46 · 622 阅读 · 0 评论 -
C++基础---string类的operator=/assign
1. string中operator=/assign1.1 std::string::operator=原型: string& operator= (const string& str);说明: 把string型字符串str赋给当前字符串。原型: string& operator= (const char* s);说明: 把char型字符串s赋给当前字符串。原型:string& operator= (原创 2015-09-03 18:24:51 · 4872 阅读 · 0 评论 -
C++基础---string类的构造函数
1. string类中的构造函数1.1 default:string();原型: string();说明:默认构造函数,构造一个空字符串。代码示例:#include <iostream>#include <string>using namespace std;int main(){ string s1; cout<<"string();"<<endl; cout原创 2015-09-03 17:59:00 · 1512 阅读 · 0 评论 -
C++基础---string类的find/find_first_of/find_first_not_of/rfind/find_last_of/find_last_not_of
1. string中find/find_first_of/find_first_not_of/rfind/find_last_of/find_last_not_of1.1 std::string::find原型:size_t find (const string& str, size_t pos = 0) const noexcept;功能:从源字符串起始位置pos(默认为0)处,查找有目标字符串str(s原创 2015-09-03 18:28:00 · 2809 阅读 · 0 评论 -
C++基础---重载函数
1. 重载函数1.1 重载函数的定义重载函数:是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数;重载函数:常用来实现功能类似而所处理的数据类型不同的问题;1.2 编译器判断调用的重载函数编译器判断重载函数的第一步:是确定该调用中所考虑的重载函数的原创 2015-09-03 22:00:08 · 1005 阅读 · 0 评论 -
C++基础---递归函数
1. 递归函数1.1 递归函数的定义递归函数:即在函数体中出现调用自身的函数,即函数Func(Type a,……)直接或间接调用函数本身;递归函数:在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值x0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数;递归函数:不能定义为内联函数;1.2 递归的本质递归函数的例子: (1)例原创 2015-09-03 20:52:40 · 2879 阅读 · 0 评论 -
C++基础---string类的replace
1. string中replace1.1 string:string& replace (size_t pos, size_t len, const string& str);原型:string& replace (size_t pos, size_t len, const string& str);说明:删除源字符串从下标为pos处开始的len个字符,然后在pos处插入string型字符串str。1.2原创 2015-09-03 19:55:09 · 3613 阅读 · 0 评论 -
C++基础---string类的clear/erase/pop_back
1. string中clear/erase/pop_back1.1 std::string::clear原型:void clear() noexcept;说明:将字符串的内容清空,让源字符串成为一个空字符串(长度为0个字符)。代码示例:#include <iostream>#include <string>using namespace std;int main (){ str原创 2015-09-03 18:29:44 · 29000 阅读 · 0 评论 -
C++基础---string类的capacity/max_size/size/length/empty/reserve/resize
1. string中capacity/max_size/size/length/empty/reserve/resize1.1 std::string::capacity原型: size_t capacity() const;说明: 返回string分配的存储容量。1.2 std::string::max_size原型: size_t max_size() const;说明: 返回string对象中原创 2015-09-03 18:11:46 · 4072 阅读 · 2 评论 -
C++基础---函数的参数
1.函数的参数1.1 形参的定义形参:全称为“形式参数”。形参:是在定义函数名和函数体的时候使用的参数。形参:不是实际存在变量,所以又称虚拟变量,目的是用来接收调用该函数时传递的参数。1.2 实参的定义实参:全称为“实际参数”。实参:是在调用时传递给函数的参数,即传递给被调用函数的值。实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,目的是原创 2015-09-03 22:09:28 · 867 阅读 · 0 评论 -
C++基础---内联函数
1. 内联函数1.1 内联函数的定义内联函数:指用inline关键字修饰的函数;内联函数:在类内定义的函数被默认成内联函数;内联函数:不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处,编译时,类似宏替换,使用函数体替换调用处的函数名;内联函数的作用:内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。 注:一般在代码中用inline修饰,但原创 2015-09-03 20:43:38 · 781 阅读 · 0 评论 -
C++基础---主函数
1. 主函数1.1 主函数的定义一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数;主函数意味着建立一个独立进程,既是程序的入口,又是程序的出口;主函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统);主函数的返回值用于说明程序的退出状态,如果返回0,则代表程序正常退出,如果返回非0,则代表程序异常退出; 注:最好不要把太多的细节方面的逻辑直接放在主函数内,这样不利于原创 2015-09-03 20:06:11 · 11154 阅读 · 0 评论 -
C++基础---string类的operator<</operator>>/getline
1. string中operator<< /operator>> /getline1.1 std::operator<< (string)原型: ostream& operator<< (ostream& os, const string& str);说明: 用于输出操作,将字符串插入流。代码示例:#include <iostream>#include <string>using name原创 2015-09-03 18:23:54 · 950 阅读 · 0 评论 -
C++基础--string类的operator[]/at/back/front
1. string中operator[]/at/back/front1.1 std::string::operator[]原型: const char& operator[](size_t n) const;功能: 返回源字符串下标为n处的字符的引用。说明: 不能被修改。原型:char& operator[](size_t n);功能: 返回源字符串下标为n处的字符的引用。说明: 可以被修改。代码原创 2015-09-03 18:10:22 · 4484 阅读 · 0 评论 -
C++基础---string类的operator==/operator!=/operator</operator<=/operator>/operator>=/compare
1. string中operator==/operator!=/operator< /operator<=/operator>/operator>=/compare1.1 bool operator==原型:bool operator== (const string& lhs, const string& rhs) noexcept;说明: 比较string型字符串lhs与string型字符串rhs是否相等原创 2015-09-03 18:26:02 · 2544 阅读 · 0 评论 -
C++基础---函数的参数传递
1. 函数的参数传递1.1 函数的参数传递方法函数的参数传递包括:值传递、指针传递、引用传递这三种方法。函数的参数传递三种方法的程序示例:#include <iostream>using namespace std;void swap1(int p, int q){ int temp; temp=p; p=q; q=temp;}void swap2(in原创 2015-09-03 22:13:12 · 485 阅读 · 0 评论 -
C++基础---虚函数
1. 虚函数1.1 虚函数的定义虚函数:就是在基类的成员函数前加关键字virtual(即被virtual关键字修饰的成员函数),并在一个或多个派生类中被重新定义的成员函数;虚函数:就是在编译的时候不确定要调用哪个函数,而是动态决定将要调用哪个函数。它的作用就是为了能让这个函数在它的子类里面可以被重载,这样的话,编译器就可以使用后期绑定来达到多态了,也就是用基类的指针来调用子类的这个函数;虚函数的作用:在于原创 2015-09-04 16:08:01 · 592 阅读 · 0 评论 -
C++基础---函数的返回类型
1. 函数的返回类型1.1 函数的返回类型C++可以把函数分为有返回值函数和无返回值函数两种。函数的返回类型:即函数返回值的类型;代码示例:void func()//无返回值函数{ if(boolean_expression) { return;//让函数停止运行 }}int func()//有返回值函数{ if(boolean_express原创 2015-09-04 16:38:45 · 3868 阅读 · 0 评论 -
C++基础---类(class)
1. 类(class)1.1 类的概念类(class):是面向对象程序设计中的概念,是面向对象编程的基础,是对对象的抽象,对象是对客观事物的抽象。类(class):是一种抽象的数据类型,是一种复合数据类型,类类型。类的构成:包括成员变量和成员函数。类(class):是对现实生活中一类具有共同特征的事物的抽象。如果一个程序里提供的类型与应用中的概念有直接的对应,这个程序就会更容易理解,也更容易修改。一组经原创 2015-11-03 00:10:34 · 890 阅读 · 0 评论 -
C++基础---结构体(struct)
1. 结构体(struct)1.1 结构体的概念结构体(struct):是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。结构体(struct):是一种复合数据类型,结构类型。 注:“结构”是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函原创 2015-10-12 01:19:24 · 17077 阅读 · 1 评论 -
C++基础---typedef struct与struct的区别
1.typedef struct与struct的区别1.1 typedef的概念typedef:为C语言的关键字,作用是为一种数据类型定义一个新名字(这里的数据类型包括基础数据类型和复合数据类型)。在编程中使用typedef的目的:一是给变量一个易记且意义明确的新名字,二是简化一些比较复杂的类型声明。1.2 typedef struct的代码示例示例代码一:#include <iostream>原创 2015-10-13 00:28:28 · 1913 阅读 · 0 评论 -
C++基础---友元类
1. 友元类1.1 友元类的概念友元类:与函数相同,类也可以作为另一个类的友元类,这样,另一个类的私有及其保护成员都会暴露给友元类。友元类:可以通过自己的方法来访问另一个类的所有成员。但是这并不代表另一个类可以访问它的友元类的所有成员。具体的说:当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。 注:C++编程中如果需要访问非本类的私有原创 2015-11-04 23:28:37 · 628 阅读 · 0 评论 -
C++基础---面向对象建模方法
1. 面向对象的建模方法1.1 OMT/Rumbaugh方法OMT(Object Modeling Technique)方法: (1)OMT方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。Jim Rumbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体关系模型上扩展了类、继承和行为而得到的。 (2)OMT方法覆盖了分析、设计和原创 2015-09-13 17:41:38 · 4553 阅读 · 0 评论 -
C++基础---面向对象程序设计
1. 面向对象的程序设计1.1 面向对象程序设计的定义面向对象编程:Object Oriented Programming(简称OOP),面向对象程序设计。面向对象程序设计: (1)面向对象程序设计是一种计算机编程架构。面向对象程序设计的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。 (2)面向对象程序设计是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将原创 2015-09-13 16:12:40 · 2930 阅读 · 1 评论 -
C++基础---面向对象
1. 面向对象1.1 面向对象的定义面向对象:Object Oriented,简称OO。面向对象:是一种思想,是一种程序设计范型,是一种程序开发的方法。面向对象:是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象方法:是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。面向对象的概念和应用:已超越了程序设计和软件开发,原创 2015-09-13 11:56:23 · 753 阅读 · 0 评论 -
C++基础---回调函数
1. 回调函数1.1 回调函数的定义回调函数:指一个通过函数指针调用的函数;回调函数:把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数;1.2 回调函数的意义因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个原创 2015-09-06 21:16:00 · 727 阅读 · 0 评论 -
C++基础---有返回值类型函数(指针函数)
1. 有返回值类型函数(指针函数)1.1 指针的定义指针:是一个特殊的变量,它里面存储的数值为内存里的一个地址。通过指针,程序员可以直接对内存进行操作。 注:要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。1.2 指针作为参数传递回顾形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。将原创 2015-09-04 17:05:27 · 1694 阅读 · 0 评论 -
C++基础---静态联编与动态联编
1. 静态联编与动态联编1.1 函数联编的定义函数联编:将一个调用函数者联结上正确的被调用函数的过程,一般称为联编。C++中的联编分两种: (1)静态联编; (2)动态联编;1.2 静态联编的定义成员函数必须声明为非virtual,即为非虚函数,该函数是静态联编;静态联编:指联编工作出现在编译连接阶段,这种联编又称为早期联编;编译程序:在编译阶段,被调函数和调用函数的关系以及它们的内存地址在编原创 2015-09-04 16:29:10 · 1924 阅读 · 0 评论 -
C++基础---纯虚函数
1. 纯虚函数1.1 纯虚函数的定义纯虚函数:是一种特殊的虚函数;纯虚函数的作用:让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义;纯虚函数的实现:在基类中实现的虚函数的函数原型后加“=0”;代码示例:class <类名>{virtual <类型><函数名>(<参数表>)=0;…};即:virtual void funtion()=0;注:一般而言纯虚函数的函数原创 2015-09-04 16:12:31 · 1353 阅读 · 1 评论 -
C++基础---函数指针
1. 函数指针1.1 函数指针的定义函数指针:指向函数的指针变量,本质是一个指针变量。函数指针有两个用途:调用函数和做函数的参数。函数指针声明方法:返回值类型 ( * 指针变量名)(形参列表及类型说明){ //函数体 }代码示例:int func(int x);//声明一个函数int (*f) (int x);//声明一个函数指针f=func;//将func函数的首地址赋给指针f 或者使用下面原创 2015-09-04 17:08:35 · 523 阅读 · 0 评论 -
C++基础---有返回值类型函数(返回非引用类型)
1. 有返回值类型函数(返回非引用类型)1.1 函数返回非引用类型函数的返回值用于初始化在调用函数处创建的临时对象。在求解表达式时,如果需要一个地方储存其运算结果,编译器会创建一个没有命名的对象,这就是临时对象。在英语中,C++程序员通常用temporary这个术语来代替temporary object。用函数返回值初始化临时对象与用实参初始化形参的方法是一样的。用函数返回值初始化临时对象与用实参初始化形参原创 2015-09-04 16:50:53 · 1227 阅读 · 0 评论 -
C++基础---构造函数与析构函数
1. 构造函数与析构函数1.1 构造函数的定义构造函数:是一种特殊的方法;构造函数:没有返回值,也不能用void来修饰;构造函数:它的命名必须和类名完全相同;构造函数:不能被直接调用,在创建对象时才会自动调用;构造函数:如果用户没有编写构造函数,编译系统会多数情况下,会为类生成一个公有的默认构造函数;构造函数:不能被声明为虚函数;构造函数:一个类中可以包含多个构造函数,但是对于每一个对象来说,建立原创 2015-09-04 15:43:21 · 731 阅读 · 0 评论 -
C++基础---虚析构函数与纯虚析构函数
1. 虚析构函数与纯虚析构函数1.1 虚析构函数与纯虚析构函数的定义虚析构函数:为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象;虚析构函数:当且仅当类里包含至少一个虚函数的时候才去声明虚析构函数,无故的声明虚析构函数和永远不去声明一样是错误的;class <类名>{virtual ~<类名>();…};即:virtual ~A();纯虚析构函数:抽象类是准备被用做基类的,基类原创 2015-09-04 16:20:11 · 1650 阅读 · 0 评论 -
C++基础---有返回值类型函数(返回引用类型)
1. C++基础—有返回值类型函数(返回引用类型)1.1 引用的定义引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不可以把该引用名作为其他变量名的别名。代码示例:(1)会调用拷贝构造函数和析构函数A a(){...;return *this;}(原创 2015-09-04 16:58:12 · 5039 阅读 · 1 评论 -
C++基础---无返回值函数(void函数)
1. 无返回值函数(void函数)1.1 void函数的定义不带返回值的return语句只能用于返回类型为void的函数。在返回类型为void的函数中,return返回语句不是必需的,隐式的return发生在函数的最后一个语句完成时。一般情况下,返回类型是void的函数使用return语句是为了引起函数的强制结束,这种return的用法类似于循环结构中的break语句的作用。1.2 void函数的实例原创 2015-09-04 16:43:49 · 47777 阅读 · 4 评论 -
C++基础---string类的operator+=/append/push_back
1. string中operator+=/append/push_back1.1 std::string::operator+=原型:string& operator+= (const string& str);说明:把string型字符串str连接到源字符串的结尾。原型:string& operator+= (const char* s);说明:把char型字符串s连接到源字符串的结尾。原型:str原创 2015-09-03 19:56:35 · 4828 阅读 · 0 评论 -
C++基础---string类的insert
1. string中insert1.1 string:string& insert (size_t pos, const string& str);原型:string& insert (size_t pos, const string& str);说明:在源字符串下标为pos处插入string型字符串str。1.2 substring:string& insert (size_t pos, const s原创 2015-09-03 19:30:39 · 6792 阅读 · 0 评论 -
C++基础---string类的data/c_str/copy
1.string中data/c_str/copy1.1 std::string::data原型: const char *data()const;功能: string型字符串转化为char型字符串。说明:将自身转化为一个以空终止符结束(即带”\0“结尾)的char型字符串。返回值:一个指向字符串数组的指针,字符串数组指针。代码示例:(1)示例代码一:#include <iostream>原创 2015-09-03 18:09:28 · 4828 阅读 · 0 评论