C++
C++常用知识点
Shijia Yin
这个作者很懒,什么都没留下…
展开
-
C++中explicit关键字的作用
简述explicit关键字是用来防止由构造函数定义的隐式转换。要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。举例class things{ public: things(const std::string&name =""): m_name(name),height(...转载 2020-03-10 21:47:18 · 344 阅读 · 0 评论 -
C++中的友元
文章目录序言为什么要使用友元函数创建友元序言您知道,C++控制对类对象私有部分的访问。通常,公有类方法提供唯一的访问途径,但是有时候这种限制太严格,以致于不适合特定的编程问题。在这种情况下,C++提供了另外一种形式的访问权限:友元。友元有3种:友元函数;友元类;友元成员函数通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。下面介绍友元函数。为什么要使用友元函数...原创 2019-08-15 11:14:42 · 127 阅读 · 0 评论 -
C++中的名字空间
摘抄自《C++ Primer Plus》文章目录序言传统的C++名称空间新的名称空间特性序言在C++中,名称可以是变量、函数、结构、枚举、类以及类和结构的成员。当随着项目的增大,名称相互冲突的可能性也将增加。使用多个厂商的类库时,可能导致名称冲突。例如,两个库可能都定义了名为List、Tree和Node的类,但定义的方式不兼容。用户可能希望使用一个库的List类,而使用另一个库的Tre...原创 2019-08-11 16:28:20 · 212 阅读 · 0 评论 -
C++中的多态
转载自菜鸟教程文章目录序言示例说明虚函数纯虚函数序言多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。示例说明下面的实例中,基类 Shape 被派生为两个类,如下所示:#include <iostream> using namespace st...原创 2019-08-20 15:56:47 · 148 阅读 · 0 评论 -
C++中的类访问修饰符
转载自菜鸟教程文章目录序言公有成员私有(private)成员保护(protected)成员序言数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。一个类可以有多个 public、p...转载 2019-08-20 16:27:45 · 206 阅读 · 0 评论 -
C++中区别接口继承与实现继承
转载自大佬的博客不同于Objective C或者Java,C++中的继承接口和实现继承是同一个语法过程。 当你public继承一个类时,接口是一定会被继承的,你可以选择子类是否应当继承实现:不继承实现,只继承方法接口:纯虚函数。继承方法接口,以及默认的实现:虚函数。继承方法接口,以及强制的实现:普通函数。一个例子为了更加直观地讨论接口继承和实现继承的关系,我们还是来看一个例子...转载 2019-08-21 10:50:09 · 595 阅读 · 0 评论 -
C++中的对象和类
今天开始正式步入C++的OOP世界,之前是python的OOP世界文章目录前言前言原创 2019-08-12 13:20:04 · 144 阅读 · 0 评论 -
C++中的类模板定义及实例化
转载自Out man文章目录一、类模板定义及实例化定义一个类模板:类模板实例化二、类模板的成员函数一、类模板定义及实例化定义一个类模板:template<class 模板参数表>class 类名{// 类定义......};其中,template是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数,也可以是非类型参数。类...转载 2019-08-21 13:44:08 · 11422 阅读 · 0 评论 -
C++中的类继承
文章目录序言一个简单的基类(对类的说明都在注释中了)派生一个类派生类与基类之间的特殊关系继承:is-a关系总结序言面向对象编程的主要目的之一是提供可重用的代码。开发新项目,尤其是当项目十分庞大时,重用经过测试的代码比重新编写代码要好得多。另外,必须考虑的细节越少,便越能专注于程序的整体策略。一个简单的基类(对类的说明都在注释中了)头文件//tabtenn0.h//这是一个用来记录乒乓...原创 2019-08-17 20:17:21 · 141 阅读 · 0 评论 -
C++中的异常处理
摘抄自菜鸟教程文章目录序言抛出异常捕获异常总结序言异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通...原创 2019-08-18 14:08:40 · 348 阅读 · 0 评论 -
C++中的函数模板
摘抄自《C++ Primer Plus》文章目录前言原理解释前言函数模板是C++的又一项新特性。函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如 int 或 double)替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。由于模板允许以泛型(而不是具体类型)的方式编写程序,因此有时也被称为通用编程。由于类型是用参数表示的,因此模板特...原创 2019-08-10 16:31:11 · 199 阅读 · 0 评论 -
C++中的引用
文章目录前言创建引用变量何时使用引用参数使用引用参数的原因对于使用传递的值而不做修改的函数对于修改调用函数中数据的函数前言C++新增加了一种复合类型,叫做引用变量。引用是已定义的变量的别名(学过python的人对这个概念应该很容易理解),例如,如果将twain作为element变量的引用,则可以交替使用twain和element来表示该变量。下面我们将介绍引用的基础知识。创建引用变量我们...原创 2019-08-07 21:38:55 · 149 阅读 · 0 评论 -
C++中的运算符重载
C++的难点之一是需要记住大量的东西,轻松地使用这种语言。不要觉得必须使用所有的特性,不要在第一次学习时就试图使用所有的特性。文章目录序言运算符重载一个运算符重载示例重载限制其它重载运算符总结序言运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。实际上,很多C++(也包括C语言)运算符已经被重载。例如,将*运算符用于地址,将得到存储在...原创 2019-08-14 15:41:53 · 269 阅读 · 0 评论 -
C++中的四种强制类型转换
C++中的强制类型转换转载 2019-02-24 11:12:49 · 271 阅读 · 0 评论 -
C++中的内联函数
如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline 限定符。在类定义中的定义的函数都是内联函数,即使没有使用 inline 说明符。内联函数inline:引入内联函数的目的是为了解决程序中函数调用的效率问题,这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内...原创 2019-04-17 06:48:08 · 180 阅读 · 0 评论 -
C++基本数据类型初探
来自《C++ Primer Plus》,虽然是抄自书上,但是我还是将自己的概括能力展现在里面了。按照我以前的学习方式,这些东西,我是不会总结的,但是我如今改变了。因为凡事都需要总结,不论事情大小难易。将小事做到最好也是一件了不起的事。文章目录前言变量名命名法则命名约定初始化整型无符号整型整型的选择整型字面值表示确定常量类型浮点数浮点数字面值表示总结前言OOP的本质是设计并扩展自己的数据...原创 2019-08-04 11:19:22 · 150 阅读 · 0 评论 -
C++中string类简介
本篇文章摘抄自《C++ Primer Plus》,只是读书笔记,并不具有什么创新性的个人见解(以后有了可能回来重写博客)文章目录序言使用条件基本用法优点相关操作初始化赋值字符串合并操作总结序言C++是一种面向对象的编程语言,是一种具有很好的封装性的语言。我们在C语言中使用字符串的时候,一般是采用数组字符串,对数组字符串的操作可以说是十分繁琐。在C++中,有一个string类将这种繁琐封...原创 2019-08-04 22:07:56 · 140 阅读 · 0 评论 -
C++中的几种基本复合类型
摘抄自《C++ Primer Plus》,由于博主比较比较熟悉C语言,所以这里不会有太全面的语法介绍,基本上只是为了和C进行比较,从而突显C++相比于C在复合类型用法方面的特殊之处文章目录序言结构体共用体枚举类型总结序言在C语言中,我们学过的复合类型有结构体、共用体、枚举类型。今天我们就来看看它们在C++中是什么样子。结构体1、定义结构体struct fruit{ strin...原创 2019-08-05 23:26:47 · 936 阅读 · 0 评论 -
C++中的new和delete
摘抄自《C++ Primer Plus》文章目录序言使用new来分配内存使用delete来释放内存使用new来创建动态数组总结序言本文默认读者对C语言中的指针已经很熟悉了。我们主要谈谈C++中的new如何实现内存的管理。使用new来分配内存我们从一个小例子谈起。假如我们想分配一块匿名int型内存,并通过指针来访问这块内存,我们可以这样做int *pn = new int;ne...原创 2019-08-06 10:48:35 · 270 阅读 · 0 评论 -
C++复合类型复习
这是《C++ Primer Plus》章节课后习题,我以前都是不做的。文章目录序言复习题序言本篇博文主要是对我前阶段学习C++复合类型的总结,分为复习题和编程联系两部分。复习题1.如何声明下述数据?a.actor是由30个char组成的数组。b.betsie是由100个short组成的数组。c.chuck是由13个float组成的数组。d.dipsea是由64个long d...原创 2019-08-06 21:24:06 · 476 阅读 · 0 评论 -
C++中函数重载
文章目录序言基本认识重载示例如何使用函数重载名称修饰序言函数重载是C++在C语言基础上新增的特性,函数重载指的是可以有多个同名的函数,这就像你可以在学校以一个学生的身份读书,也可以在家以一个子女的身份帮爸妈干活。函数重载有着十分重要的意义,下面是其中几点:试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_int、print_string...原创 2019-08-09 12:56:05 · 264 阅读 · 0 评论 -
C++中的Lambda表达式的用法
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。基本语法如下:[函数对象参数] (参数列表)mutable exception -&amp;gt;返回值类型{函数体}[capture list] (params list) mutable exception -&amp;gt; return type { function body }可以看到,Lambda主要分为五个部分...原创 2019-02-06 10:11:33 · 266 阅读 · 0 评论