
C++
文章平均质量分 83
王之誉
对微软的CodeFlow有一定研究可以独立开发架设此系统
展开
-
C++学习笔记9-操作符重载
1. 重载操作符必须具有一个类类型操作数用于内置类型的操作符,其含义不能改变。例如,内置的整型加号操作符不能重定义:// error: cannotredefine built-in operator for intsint operator+(int, int); 也不能为内置数据类型重定义加号操作符。例如,不能定义接受两个数组类型操作数的operator+。 重载操作原创 2014-07-18 09:16:04 · 1172 阅读 · 0 评论 -
C++学习笔记5 容器
1. 使用assign assign 操作首先删除容器中所有的元素,然后将其参数所指定的新元素插入到该容器中。与复制容器元素的构造函数一样,如果两个容器类型相同,其元素类型也相同,就可以使用赋值操作符(=)将一个容器赋值给另一个容器。如果在不同(或相同)类型的容器内,元素类型不相同但是相互兼容,则其赋值运算必须使用assign 函数。例如,可通过assign 操作实现将vector原创 2014-07-08 10:07:27 · 1449 阅读 · 0 评论 -
C++学习笔记12-模板1
1. 函数模板函数模板是一个独立于类型的函数,可作为一种方式,产生函数的特定类型版本。 // implement strcmp-like generic compare function // returns 0 if thevalues are equal, 1 if v1 is larger, -1 if v1 is smaller template typename原创 2014-07-23 19:50:50 · 1212 阅读 · 0 评论 -
C++学习笔记11-面向对象2
1. 只能初始化直接基类一个类只能初始化自己的直接基类。直接就是在派生列表中指定的类。如果类C 从类B 派生,类B 从类A 派生,则B 是C 的直接基类。虽然每个C 类对象包含一个A 类部分,但C 的构造函数不能直接初始化A 部分。相反,需要类C 初始化类B,而类B 的构造函数再初始化类A。这一限制的原因是,类B 的作者已经指定了怎样构造和初始化B 类型的对象。像类B 的任何用户一样,类C原创 2014-07-21 19:03:43 · 818 阅读 · 0 评论 -
C++学习笔记7
1. 基于 const的重载为了解决这个问题,我们必须定义两个display 操作:一个是const,另一个不是const。基于成员函数是否为const,可以重载一个成员函数;同样地,基于一个指针形参是否指向const(第7.8.4 节),可以重载一个函数。const对象只能使用const 成员。非const 对象可以使用任一成员,但非const 版本是一个更好的匹配。 在此,我们将。。。原创 2014-07-09 15:13:52 · 1151 阅读 · 0 评论 -
C++学习笔记6
泛型算法 1. 算法如何工作每个泛型算法的实现都独立于单独的容器。这些算法还是大而不全的,并且不依赖于容器存储的元素类型。为了知道算法如何工作,让我们深入了解find 操作。该操作的任务是在一个未排序的元素集合中查找特定的元素。从概念上看,find必须包含以下步骤:1. 顺序检查每个元素。2. 如果当前元素等于要查找的值,那么返回指向该元素的迭代器。3. 否则,检查下一个元素,原创 2014-07-08 15:49:42 · 1025 阅读 · 0 评论 -
C++学习笔记3
函数是有名字的计算单元,对程序(就算是小程序)的结构化至关重要。函数的定义由返回类型、函数名、形参表(可能为空)以及函数体组成。函数体是调用函数时执行的语句块。在调用函数时,传递给函数的实参必须与相应的形参类型兼容。 给函数传递实参遵循变量初始化的规则。非引用类型的形参以相应实参的副本初始化。对(非引用)形参的任何修改仅作用于局部副本,并不影响实参原创 2014-07-03 16:15:48 · 1332 阅读 · 0 评论 -
C++学习笔记4
1. 输出缓冲区的刷新我们的程序已经使用过endl 操纵符,用于输出一个换行符并刷新缓冲区。除此之外,C++语言还提供了另外两个类似的操纵符。第一个经常使用的flush,用于刷新流,但不在输出中添加任何字符。第二个则是比较少用的ends,这个操纵符在缓冲区中插入空字符null,然后后刷新它: cout cout cout 2. unitbuf 操纵符 。。。原创 2014-07-04 14:32:24 · 849 阅读 · 0 评论 -
C++学习笔记10-面向对象
1. 面向对象编程基于三个基本概念:数据抽象、继承和动态绑定。在C++ 中,用类进行数据抽象,用类派生从一个类继承另一个:派生类继承基类的成员。动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。在C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针。 2. 继承通过继承我们能够定义这样的类,它们对类型之间的关系建模,共享公共的东西,仅仅特化本原创 2014-07-18 15:31:38 · 956 阅读 · 0 评论 -
C++学习笔记2
1. C++ 没有明确定义如何释放指向不是用new 分配的内存地址的指针。下面提供了一些安全的和不安全的delete expressions 表达式。 int i; 242 int *pi = &i; string str ="dwarves"; double *pd = newdouble(33); delete str; // error: str is n原创 2014-07-02 14:49:26 · 1079 阅读 · 0 评论 -
C++学习笔记1
1. 操作符的含义——该操作符执行什么操作以及操作结果的类型——取决于操作数的类型。 2. 数组通过指针赋值int ia[10];ia[0] = 0; // ok: subscript is an lvalue*ia = 0; // ok: dereference also is anlvalue int原创 2014-07-01 18:04:46 · 1151 阅读 · 0 评论 -
C++中出现的计算机术语4
adaptor(适配器) 一种标准库类型、函数或迭代器,使某种标准库类型、函数或迭代器的行为类似于另外一种标准库类型、函数或迭代器。系统提供了三种顺序容器适配器:stack(栈)、queue(队列)以及priority_queue(优先级队列)。所有的适配器都会在其基础顺序容器上定义一个新接口。begin(begin 操作) 一种容器操作。如果容器中有元素,该操作返回指向容器中第一原创 2014-07-09 15:27:08 · 1105 阅读 · 0 评论 -
C++中出现的计算机术语5
class template(类模板)可以用来定义一组特定类型的类的类定义。类模板用template 关键字后接用尖括号(export keyword(导出关键字) 用来指出编译器必须记住相关模板定义位置的关键字,支持模板实例化的分别编译模型的编译器使用它。export关键字一般与函数定义一起出现,类通常在相关类实现文件中声明为export。在一个程序中,一个模板只能用export 关原创 2014-07-25 14:46:43 · 1359 阅读 · 0 评论 -
C++中出现的计算机术语3
ambiguous call(有二义性的调用)一种编译错误,当调用重载函数,找不到唯一的最佳匹配时产生。arguments(实参) 调用函数时提供的值。这些值用于初始化相应的形参,其方式类似于初始化同类型变量的方法。automatic objects(自动对象) 局部于函数的对象。自动对象会在每一次函数调用时重新创建和初始化,并在定义它的函数块结束时撤销。一旦函数执行完毕,原创 2014-07-04 14:36:53 · 1163 阅读 · 0 评论 -
C++中出现的计算机术语2
C-stylestrings(C 风格字符串) compiler extension(编译器扩展) compoundtype(复合类型)const void*...原创 2014-07-03 09:51:40 · 1346 阅读 · 0 评论 -
C++中出现的计算机术语1
access labels(访问标号) 类的成员可以定义为 private,这能够防止使用该类型的代码访问该成员。成员还可以定义为 public,这将使该整个程序中都可访问成员。 address(地址) 一个数字,通过该数字可在存储器上找到一个字节。 arithmetic types(算术类型) 表示数值即整数和浮点数的类型。浮点型值有三种类型:long double 、dou原创 2014-07-01 13:10:12 · 1082 阅读 · 1 评论 -
指针和引用的比较
一 Reference 和指针的区别虽然使用引用(reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。原创 2014-07-01 14:10:50 · 1218 阅读 · 4 评论 -
C++学习笔记13-类继承
1. 类模板的 static 成员[不同于C#中的static]类模板可以像任意其他类一样声明static 成员。以下代码: template class Foo { public: static std::size_tcount() { return ctr; } // other interfacemembers private: static std::size_tct原创 2014-07-25 14:52:45 · 1248 阅读 · 0 评论