|
|
C++ Primer 学习笔记(第二章) |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
2.1 内置数组数据类型 介绍数组的基本概念,和别的C++书籍没什么区别
2.2 动态内存分配和指针 讲述静态分配、动态分配的概念 静态分配就是在编译时由编译器分配的内存区域 该区域的回收由编译器负责 动态分配就是在运行时用 new 分配的 该区域需要用 delete 来回收
静态分配的是有命名的,动态分配的无命名因此需要通过指针来访问 删除一个数组对象 delete [] object;
2.3 基于对象的设计 讲述针对内置数组数据类型的各种不足之处,如何创建一个基于对象的数组 有一新概念以前没听过,类的拷贝构造函数,下面的用法将使用到拷贝构造函数 IntArray array;
IntArray ia1 = array; IntArray ia2( array );
还有一个地方需要用到拷贝构造函数,当对象作为传值参数时。。。不知道对不对
2.4 面向对象的设计 讲述类的继承概念 构造函数的参数如何传递给基类 IntArrayRC::IntArrayRC( int sz ) : IntArray( sz ){....} 冒号后面直到花扩号之间的叫做成员初始化列表
2.5 泛型设计 模版一种机制,可以将类、函数的内部的类型和值参数化 简单的来看就是作为代码中的占位符,当实例化时用编译器用实际的类型替换该占位符 template <class elemType> class Array{ public: explicit Array( int size = DefaultArraySize ); Array( elemType *array, int array_size ); Array( const Array &rhs ); virtual ~Array() { delete [] ia; } bool operator==( const Array& ) const; bool operator!=( const Array& ) const; Array& operator=( const Array& ); int size() const { return _size; } virtual elemType& operator[]( int index ) { return ia[ index ]; } virtual void sort(); virtual elemType min() const; virtual elemType max() const; virtual int find( const elemType &value ) const; private: static const int DefaultArraySize = 12; int _size; elemType *ia; } 以上用模版定义的类,下面是该类的应用 #include <iostream> #include “Array.h” int main() { const int array_size = 4; Array<int> ia(array_size); Array<double> da(array_size); Array<char> ca(array_size); int ix; for ( ix = 0; ix < array_size; ++ix ){ ia[ ix ] = ix; da[ ix ] = ix * 1.75; ca[ ix ] = ix + 'a'; } for ( ix = 0; ix < array_size; ++ix ) cout << “[” << ix << “] ia: ” << ia[ ix ] << “\tca: “ << ca[ ix ] << “\tda: “ << da[ ix ] << endl; return 0; }
模版的应用在类继承的时候 template <class elemType> class ArrayRC : public Array<elemType>{ public: ... }
这一节比较重要,以前看的C++输没讲到这概念,感觉很有用,要看看别人的学习纪录
2.6 基于异常的设计

|
|
相关文章:相关软件: |
|