
C++
David_Hernandez
NLP
展开
-
复制构造函数、析构函数、赋值操作符缺少其一的后果
值型HasPtr类定义了所有的复制控制成员。描述将会发生什么,如果该类: (1)定义了复制构造函数和析构函数但没有定义赋值操作符; 如果值型HasPtr类定会了复制构造函数和析构函数但没有定义赋值操作符,则使用编译器合成的复制操作符。因此,若将一个HasPtr对象赋值给另一HasPtr对象,则两个HasPtr对象的Ptr成员值相同(即二者指向同一基础int对象)。当其中一个Has原创 2016-03-09 14:15:37 · 1123 阅读 · 0 评论 -
Note09--String
书:C++大学教程(第七版) 1. getline(cin, string1); 从键盘上读取一个字符串到string1.输入用一个换行符结束,所以getline函数可以读取一行文本到一个string类对象中。#include <iostream>#include <string>using namespace std;int main(){ string string1(原创 2017-01-14 18:50:32 · 377 阅读 · 0 评论 -
Note08--文件
书:C++大学教程(第七版) 1. ios::app 将输出数据添加到文件的结尾 ios::ate 将一个文件打开作为输出文件,并移动到文件尾(一般用来为一个文件添加数据)。可以在文件的任何位置写数据 ios::in 打开一个文件作为输入文件 ios::out 打开一个文件作为输出文件 ios::trunc 如果文件有内容则原创 2017-01-14 18:45:21 · 359 阅读 · 0 评论 -
Note07
书:C++大学教程(第七版) 1. 处理大容量文件时,使用非格式化的I/O可以获得最好的性能。 低层次的I/O功能(也就是非格式化的I/O)制定字节应从设备传输到内存或是从内存传输到设备。这种传输通常针对单个字节。 使用非格式化的I/O可能会导致可移植性的问题。 2. <iostream>头文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、原创 2017-01-14 18:37:14 · 284 阅读 · 0 评论 -
Note06
书:C++大学教程(第七版) 1. 在派生类的构造函数中,采用成员初始化器列表显式地调用初始化成员对象和调用基类的构造函数,可以防止重复初始化,即调用了默认构造函数之后,又在派生类构造函数中再次修改数据成员。 2. public、protected、private继承 (1) protected继承,基类的public和protected成员都变成派生类中的protected成员。原创 2017-01-14 18:31:40 · 340 阅读 · 0 评论 -
Note05
书:C++大学教程(第七版) 1. 运算符重载 (1) 重载不能改变运算符的优先级; (2) 重载不能改变运算符的结合律; (3) 重载不能改变元素运算符的“元数”; (4) 不能创建新的运算符,只有现有的运算符才可以重载; (5) 运算符重载不能改变运算符对于基本类型对象操作的含义; (6) 运算符重载只能对用户自定义类型的对象,或者原创 2017-01-14 18:28:33 · 307 阅读 · 0 评论 -
Note04
书:C++大学教程(第七版) 1. cmath头文件提供了能够进行通用数学计算的函数集合。 2. 数据类型 3. 标准库头文件 4. rand函数的原型在中 5. srand()和rand() srand()就是给rand()提供种子seed,通常将时间作为种子; srand(time(0)); 如果srand每次输入的数值是一样的,那么每次原创 2017-01-14 18:24:22 · 362 阅读 · 0 评论 -
Note03--STL容器
Vector:适合需要随机访问元素的情况 (1) 保存元素序列,提供对这些元素的随机访问。 (2) 元素保存在连续内存中。 (3) 能够在Vector尾部快速地插入和删除元素,在其他位置(非尾部)插入和删除操作比较慢,因为必须调整元素位置。Vector提供了任意元素的快速访问(常量时间)。 (4) 如果在程序中需要快速访问元素,但不会频繁在中间添加或删除元素,应该使用Vector;一个好的经原创 2017-01-14 18:17:24 · 555 阅读 · 0 评论 -
Note02
书:C++高级编程 第三版 1. using指令不要过度使用,如果使用过多,实际上就是完全取消了名称空间。 2. 切勿在头文件中使用using指令或者using声明,否则每个人都会包含你的头文件。 3. 变量声明时建议初始化; 4. auto关键字用途: (1) auto x = 123; 用于变量 (2) auto result = getFoo(); 用于函数返回值、原创 2017-01-14 18:13:05 · 278 阅读 · 0 评论 -
Note01
相对路径是针对项目的主目录文件夹而言的;判断文件是否读完:#include <iostream>#include <fstream>#include <string>using namespace std;int main(){ string next; fstream inputStream; inputStream.open(".\\Debug\\playe原创 2017-01-14 18:10:28 · 306 阅读 · 0 评论 -
Note10
指针和引用的区别: (1) 引用总是指向某个确定对象,引用就是对象的别名,定义引用时没有进行初始化会出现编译错误; (2) 赋值行为上存在差异:给引用赋值修改的是该引用所关联的对象的值,而不是使该引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象。给指针赋值修改的是指针对象本身,也就是使指针指向另一个对象,指针在不同时刻可指向不同的对象,只要保证类型匹配。strtok#inclu原创 2017-01-14 18:51:47 · 618 阅读 · 0 评论