热文IntelliJ IDEA最全使用教程和详细配置
IntelliJ IDEA最全使用教程和详细配置,pdf完整版,有详细的操作目录和使用步骤 网盘链接:[https://u18453168.ctfile.com/...
IntelliJ IDEA最全使用教程和详细配置,pdf完整版,有详细的操作目录和使用步骤 网盘链接:[https://u18453168.ctfile.com/...
一. 单线程 我们常说“JavaScript是单线程的”。 所谓单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个。不妨叫它主线程。 但是实际...
析构函数(destructor)用来释放对象所占用的资源。当对象的使用周期结束后,例如当某对象的范围(scope)结束时,或者是动态分配的对象被delete关键字解除资源...
试想如下情形,某个房地产商所拥有的房子都是不同的,同时你在为这个公司设计程序,而你不想将一座房子的信息拷贝给另一座房子,这就需要禁止使用拷贝构造函数(copy const...
C++中,编译器会自动生成一些你没有显式定义的函数,它们包括:构造函数、析构函数、复制构造函数、`=`运算符。 有时为了符合既有设计,我们不希望自动生成这些函数,我们可以...
看完C++ Primer,最近吃了安利开始啃Scott Meyers的Effective C++第三版,书中干货不少,非常值得深思借鉴。但是也有点太多了(→\_→),脑子...
面向对象编程和泛型编程都能处理在编写程序时不知道类型的情况。 OOP能处理类型在程序运行之前都未知的情况; 泛型变成中,在编译时就可以获知类型。 定义模板 模板:模板是泛...
OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。 继承(inheritance): 通过...
基本概念 * 重载运算符是具有特殊名字的函数:由关键字`operator`和其后要定义的运算符号共同组成。 * 当一个重载的运算符是成员函数时,`this`绑...
拷贝控制操作(copy control): 拷贝构造函数(copy constructor) 拷贝赋值运算符(copy-assignment operator) 移动构造...
对象的生命周期: 全局对象在程序启动时分配,结束时销毁。 局部对象在进入程序块时创建,离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 动态分配...
* 关联容器和顺序容器的不同:关联容器中的元素时按照**关键字**来保存和访问的。 * 关联容器支持通过关键字来高效地查找和读取元素,基本的关联容器类型是 `map...
前面章节已经在用的IO库设施 istream:输入流类型,提供输入操作。 ostream:输出流类型,提供输出操作 cin:一个istream对象,从标准输入读取数据。 ...
类背后的基本思想:数据抽象和封装 类成员 (Member) 必须在类的内部声明,不能在其他地方增加成员。 成员可以是数据,函数,类型别名。 类的成员函数 成员函数的声明必...
函数基础 函数定义:包括返回类型、函数名字和0个或者多个形参(parameter)组成的列表和函数体。 调用运算符:调用运算符的形式是一对圆括号 (),作用于一个表达式,...
简单语句 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。 空语句:只有一个单独的分号。 复合语句(块):用花括号 {}包裹起来的语句和声明的序列。一个块就是一...
表达式基础 重载运算符:当运算符作用在类类型的运算对象时,用户可以自行定义其含义。 左值和右值: c中原意:左值可以在表达式左边,右值不能。 c++:当一个对象被用作...
using声明 * 使用某个命名空间:例如 `using std::cin`表示使用命名空间`std`中的名字`cin`。 * 头文件中不应该包含`using...
第二章 变量和基本类型 基本算数类型 * `char`: 8bits * `short`: 16bits * `int`: 16bits (在32位...
虽然Item 15:资源管理类需要提供对原始资源的访问中提到,最好不要提供隐式的类型转化。 但这条规则也存在特例,比如当我们需要创建数字类型的类时。正如double和in...
其实简单来说成员函数是在类中定义的函数,而非成员函数就是普通函数,就是不是在类中定义的函数,其中非成员函数比较典型的是友元函数。下面贴上一些其他的一些区别和理解: 成员函...
数据成员声明为私有可以提供一致的接口语法,提供细粒度的访问控制,易于维护类的不变式,同时可以让作者的实现更加灵活。而且我们会看到,protected并不比public更加...
我们发现,在C++中,有些成员函数返回的是对象,而有些函数返回的又是引用。 返回对象和返回引用的最主要的区别就是函数原型和函数头。 **Car run(const C...
C++继承了C默认传递方式为值传递的特性,那么对于一个值传递的函数,它的参数是被传进来变量的拷贝初始化的。拷贝是由拷贝构造函数生成的,而拷贝多是一个不经济的操作,至于为什...
在C++和其它面向对象的语言中,定义一个类就定义了一个新的类型。重载函数和操作符,内存的分配与释放,对象的构造与析构,全部掌握在你的手上。所以在设计类的时候,要像语言的设...
现在我们来到软件设计的话题中。软件设计就是让软件做你想做的事,软件设计一定需要接口(interface)设计,最后用C++实现。我们今天讨论可能是其中最重要的一条守则,把...
假设我们有如下函数: int priority(); //返回处理优先级 void processWidget(std::shared_ptr<Widget> pw, ...
看起来new与delete似乎是对应了,可是这样只会释放数组的第一个元素,其他99个对象则不会被释放,因为它们的析构函数没有被调用。 我们来看一下new和delete的工...
到现在我们一直在一个完美的世界里,资源管理类会帮你完成对资源的所有操作,自己不用关心资源管理类里面的原始资源。但现实是残酷的,有时我们依然需要直接接触资源管理类所封装的原...
如何使用auto_ptr和shared_ptr来管理基于堆(heap)的资源,但对于堆之外的资源,例如Mutex锁,智能指针就不再那么好用了,因此我们需要写自己的资源管理...
我们在学习编程时,经常能听到”资源”这个词。资源可能是一个很宽泛的概念,但总体来讲,资源是我们可以用来使用,并且使用完之后要返还给系统的东西。在C++中,资源多数是指动态...
C++有两种拷贝函数(copying function): 拷贝构造函数(copy constructor)和拷贝赋值操作符(copy assignment operat...
如果我们选择重载一个类的赋值运算符,要注意在自赋值时仍然能够正确工作。自赋值看起来像是不正确的调用方式, 但是在C++中这是合法的而且常常是不可识别的。例如:
C++的赋值操作符(assignment operator)有一个有趣的用法: int x, y, z; x = y = z = 15; ...
你在为某证券公司设计股市交易软件,需要有一个类用来表示股市交易: class Transaction{ ...