![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
sally0819
这个作者很懒,什么都没留下…
展开
-
明智地使用Pimpl
明智地使用Pimpl 首先引用一下别人的内容 pimpl 用法背后的思想是把客户与所有关于类的私有部分的知识隔离开。由于客户是依赖于类的头文件的,头文件中的任何变化都会影响客户,即使仅是对私有节或保护节的修改。pimpl用法隐藏了这些细节,方法是将私有数据和函数放入一个单独的类中,并保存在一个实现文件中,然后在头文件中对这个类进行前向声明并保存一个指向该实现类的指针。类的构造函数分配转载 2013-07-05 22:24:22 · 521 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream> using namespace std; class CExample { private: int a; pub转载 2013-07-03 17:30:27 · 404 阅读 · 0 评论 -
把字符串转换成整数
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题。建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同。转载 2013-07-04 10:02:30 · 461 阅读 · 0 评论 -
C++四种cast操作符
C 风格(C-style)强制转型如下: (T) expression 或 T(expression) //函数风格(Function-style) 两种形式之间没有本质上的不同。 对于具有转换的简单类型而言C 风格转型工作得很好。然而,这样的转换符也能不分皂白地应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:reinterpret_cast, stati转载 2013-07-04 15:53:30 · 389 阅读 · 0 评论 -
auto_ptr解析
auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算法,但即使如此,我们仍然不能否认这个转载 2013-07-04 19:06:48 · 331 阅读 · 0 评论 -
模板完全特化,函数重载的重载,类模板的继承
模板完全特化,函数重载的重载,类模板的继承 模板用于对类或函数的定制。当模板的泛化处理不适合某个特定的数据类型时,可针对这个数据类型给出相应的模板,包括函数模板和类模板。 1、函数模板完全特化 函数模板完全特化是在函数模板定义后,再用关键字template给出特定类型下的函数模板定义,表明它是一个没有任何泛化类型的完全特化模板。 #include t转载 2013-07-05 11:04:18 · 750 阅读 · 0 评论 -
static成员和static成员函数
下面用一个简单的程序加以理解 [cpp] view plaincopyprint? #include #include using namespace std; class Test { public: static int j; static转载 2013-08-29 09:42:10 · 538 阅读 · 1 评论 -
c++ 初始化列表
何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的克访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。 struct foo { string name ; int id ; foo(转载 2013-09-01 16:10:38 · 389 阅读 · 1 评论