C++学习笔记
文章平均质量分 73
xero10
这个作者很懒,什么都没留下…
展开
-
template
template允许定义以数据类型为参数的函数和classtemplate这叫template prefix,它告知compiler它后面的函数定义是一个template并且T是type parameter,这里class的是指数据类型。当使用template时,只会对每一种使用的数据类型产生对应的函数/class定义许多compiler不支持template function decla原创 2015-11-06 06:10:59 · 1541 阅读 · 0 评论 -
String & Vector
Stringstring类(class)在库中被定义,定义在std namespace中。注意,string是一个class可以使用"="对string对象进行赋值,用"+"连接两个string;不必考虑被赋值的string是否有足够的大小。C++可以自动地将双引号中的字符串转换成string类型。,=都可以直接对string对象进行比较string类有两个constructor,可以原创 2015-10-30 11:08:49 · 364 阅读 · 0 评论 -
Separate compilation & Namespace
data type由一系列值和对这些值的相关操作组成。abstract data type(ADT)是指使用这类data type的程序猿不需要知道其实现相关细节的data type。如果想用class实现ADT,需要将该type如何被使用和如何被定义的细节分开,达到不需要修改使用ADT的程序就能改变class实现方式的程度。应该遵守的法则有:1. 将所有的成员变量都设为private2.原创 2015-11-03 01:29:24 · 582 阅读 · 0 评论 -
Standard Template Library (STL)基础
当在STL的语境中谈论vector、stack等数据结构时,它们通常被叫做container classiterator是可以实现访问container中数据的对象,是generalization of pointer,通常也是通过指针实现的,虽然它并不是指针。可以通过++,--,*,==,!=等进行处理,但并不是所有的iterator都支持这些操作符iterator可以分为以下几类:原创 2016-03-03 06:37:36 · 355 阅读 · 0 评论 -
smart pointer
smart pointer是一种abstract data type,它能够模仿指针的行为,并且额外提供了一系列诸如自动内存管理、边界检查等特性,这些特性是为了在保证效率的基础上较少由于对指针的不正常使用而带来的bug。smart pointer能够自动进行object的销毁:当某个object的最后一个拥有者被destroy的时候(如局部变量离开了作用域),由smart pointer管理的ob原创 2016-03-26 12:13:41 · 986 阅读 · 0 评论 -
C++基础
type cast:static_cast(9)overload function只能通过不同数量或类型的formal parameter来实现,而不能通过返回值类型的不同来实现void类型的函数可以通过return来终止call-by-reference的函数parameter只能是一个变量,而不能是常量或表达式。一个函数的parameter可以混合call-by-value和cal原创 2015-10-30 09:06:19 · 366 阅读 · 0 评论 -
Exception Handling
int amount;try { cin >> amount; if(amount < 0) throw amount;}catch(int e) { cout << amount << " is negative\n";}C++中,基本的异常处理是try-throw-catch。try block中包含想要尝试执行的语句。上例中throw divisor;中的amount有时被原创 2016-02-14 12:07:00 · 601 阅读 · 0 评论 -
类
class中成员函数定义时的"::"符号叫做scope resolution operator,它前面的类名通常叫做type qualifier。定义成员函数时,可以使用该类的data member和function member而不必使用".""::"用于类,"."用于对象;“==”符号不能用于object或structure;“=”却可以对object/structure进行互相赋值p原创 2015-11-02 05:53:41 · 512 阅读 · 0 评论 -
I/O Stream
文件输入流的变量是ifstream,输出流是ofstream,它们包含在头文件中。stream变量必须通过open函数连接文件。一旦声明了输入/输出流并连接了文件,就可以用">>"/"每一个input-file stream都有成员函数eof来判断是否已读到文件结尾,当程序试图访问文件结尾后的一个字符时才会返回true(即遇到end-of-file标记时)#include...if原创 2016-02-25 11:47:54 · 430 阅读 · 0 评论