C++ 程序设计
bao天光云影
这个作者很懒,什么都没留下…
展开
-
C++标准模板库(STL)—简介
1. C/C++与STL1.1. 什么是STL? STL -- 数据结构和算法的分离,模板(GP); STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组; STL另一个重要特性是它不是面向对象的。为了转载 2016-05-16 16:59:41 · 390 阅读 · 0 评论 -
C++设计模式系列
C++设计模式系列该系列主要总结了使用C++来实现各种设计模式,并结合实际的案例来分析如何使用,以及在什么场合下使用设计模式。以下是该系列所有文章的链接。希望对大家有帮助。C++设计模式——简单工厂模式C++设计模式——工厂方法模式C++设计模式——抽象工厂模式C++设计模式——单例模式C++设计模式——建造者模式C++设计模式——原型模式C++设计模式——适配器模式C++设计模式——转载 2016-07-18 20:32:37 · 728 阅读 · 1 评论 -
C++的重写,重载,重定义
1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。1) 被重写的函数不能是 static 的。必须是 virtual 的,或者是 override 的 ( 即函数在最原始的基类中被声明为 virtual , c++ 中没有 override) 。2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型转载 2016-07-22 21:39:42 · 477 阅读 · 0 评论 -
C++中 #ifdef 和#endif的作用
一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif它的作用是:当标识符已经被定义过(一般转载 2016-05-31 16:46:39 · 291 阅读 · 0 评论 -
C++11简介(五)
5.3 类型推导 在C++03(还有C)中,必须显式指定变量的类型.然而,随着模板类型和模板元编程技术的出现,某些东西的类型,尤其是函数的返回类型,可能不是那么容易表示的了. 在这种情况下,将中间结果存储在变量中是件困难的事情.可能需要去了解特定的模板元编程库的内部实现. C++11提供两种方法来缓解上述问题.一,定义有显式初始化的变量可以用auto关键字来自动确定变量类型,转载 2016-05-31 14:41:15 · 201 阅读 · 0 评论 -
C++ 中的关键字explicit
explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。转载 2016-05-31 14:35:53 · 216 阅读 · 0 评论 -
c++(重载、覆盖、隐藏)
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与转载 2016-05-31 14:19:57 · 171 阅读 · 0 评论 -
C++ using关键字作用总结
1.在当前文件中引入命名空间这是我们最熟悉的用法,例如:using namespace std;2.在子类中使用 using 声明引入基类成员名称(参见C++ primer)在private或者protected继承时,基类成员的访问级别在派生类中更受限:class Base {public:std::size_t size() const { re转载 2016-05-31 14:13:18 · 242 阅读 · 0 评论 -
.h 与 .hpp 文件
hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的o转载 2016-05-31 09:44:55 · 299 阅读 · 0 评论 -
C++析构函数为什么要为虚函数
1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html#includeusing namespace std;class ClxBase{public: ClxBas转载 2017-05-09 15:53:01 · 302 阅读 · 1 评论