C++ Primer Plus学习笔记之静态成员
关键字static可以用来说明一个类的成员(包括数据成员和成员函数),这样的成员被称为静态成员;
1,静态数据成员
在一个类中,若将一个数据说明前加上static,则该数据成为静态数据,静态数据成员被该类的所有对象共享。无论建立多少个该类的对象,都只有一个静态数据存储空间;
具体语法如下:
类型名 类名::静态数据成员[=常量表达式]...
分类:
编程语言 时间:
2014-05-01 18:21:21
阅读次数:
273
一、前言
最近在看C++Primer第5版,先前已经看过第4版,但是发现第5版在整个知识布局与个别知识的讲解上跟第4版差别还是挺大的,尤其是新增了C++11的内容,正如孟岩老师在第5版前言中所讲:“现在能够以新的C++11风格开发实践的人是凤毛麟角,如果能够纯熟的运用C++11的新特征、新机制,那么就能够形成一种简洁优雅的C++编程风络,开发会变得更高效,更高质”。
所以正好借助第5版...
分类:
编程语言 时间:
2014-04-30 22:33:40
阅读次数:
338
C++ Primer Plus学习笔记之拷贝构造函数
1,什么是拷贝构造函数
拷贝构造函数有两个含义:
首先,它是一个构造函数,当创建一个新对象时,系统自动调用它;
其次,它将一个已经定义过的对象的数据成员逐一对应的复制给新对象;
如果一个类没有显式定义拷贝构造函数,C++编译器可以为该类产生一个缺省的拷贝构造函数。这个缺省的拷贝构造函数采用C的方式,将拷贝对象的内存一个字节一个字节的拷...
分类:
编程语言 时间:
2014-04-30 22:24:39
阅读次数:
537
C++ 中构造函数可否是虚函数?
绝不要!!
而且,在构造函数中调用虚函数也是不提倡的行为,因为会引发预想不到的结果。
因为,在 derived class 对象构造的过程中,首先调用的是基类的构造函数,等基类构造结束,才开始构造派生类的部分。
这个过程中,编译器将该对象视为 基类,而非派生类(因为,派生类对象的专属部分还未初始化!!!)
所以,如果在构造函数中调...
分类:
编程语言 时间:
2014-04-29 13:47:22
阅读次数:
258
类--类的定义和声明【下】三、关于类定义的更多内容【接上】//P374 习题12.8
class Sales_item
{
public:
double avg_price() const;
bool same_isbn(const Sales_item &rhs) const
{
return rhs.isbn == isbn;
}
Sa...
分类:
编程语言 时间:
2014-04-29 13:28:21
阅读次数:
324
类--类的定义和声明【上】引言: 在C++中,用类来定义自己的抽象数据类型。通过定义类型来对应所要解决的问题中的各种概念,可以使我们更容易编写、调试和修改程序。可以使得自己定义的数据类型用起来与内置类型一样容易和直观。 一个前面曾经定义过的类:class Sales_item
{
private:
std::string isbn;
unsigned units_sold;
...
分类:
编程语言 时间:
2014-04-29 13:21:21
阅读次数:
347
类--隐含的this指针引言: 在前面提到过,成员函数具有一个附加的隐含形参,即指向该类对象的一个指针。这个隐含形参命名为this,与调用成员函数的对象绑定在一起。成员函数不能定义this形参,而是有编译器隐含地定义。成员函数可以显式的使用this指针,但不是必须这么做。1、何时使用this指针 有一种情况下,我们必须显式使用this指针:当需要将一个对象作为整体引用而不是引用对象的一...
分类:
编程语言 时间:
2014-04-29 13:21:21
阅读次数:
371
C++Primer 中的Sales_item.h头文件...
分类:
编程语言 时间:
2014-04-28 10:47:42
阅读次数:
319
STL实践与分析--泛型算法的结构引言: 正如所有的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础。 算法最基本的性质是需要使用的迭代器种类。所有算法都指定了它的每个迭代器形参可使用的迭代器类型。比如,如果形参必须为随机访问迭代器则可提供vector或 deque类型的迭代器,或者提供指向数组的指针。而其他容器的迭代器不能用在这类算法上。 C++还提供了另外两种算法模式...
分类:
编程语言 时间:
2014-04-27 21:36:05
阅读次数:
392