代码重用的方法之一:一个类的成员是另一个类的对象——包含。
使用C++标准string类,和valarray类。
1.valarray类:
头文件 #include <valarray>
valarray 被定义为一个模板类,以便处理不同的数据类型。
valarray<所需数据类型> 对象名;//声明一个对象。
valarray<int> q_values; //an array of int
valarray<double> weights; // an array of double
使用其构造函数:可以创建长度为零的空数组,指定长度的空数组,所有元素都被初始化为指定值的数组,用常规数组中的值进行初始化的数组。
double gpa[5] = {3.1,3.5,3.8,2.9,3.3};
valarray<double> v1; //定义一个长度为0的double类型空数组。
valarray<int> v2(8); //定义一个由8个int类型元素组成的数组。
valarray<int> v3(10,8); //定义一个由8个int类型元素组成的数组,每个元素的值为10。
valarray<double> v4(gpa,4); //定义一个4个double类型元素组成的数组,并初始化为gpa数组的前4个值。
valarray模板类的一些方法:
operator[ ]( ) :访问各个元素。
size( ):返回包含的元素数。
sum( ):返回所有元素的总和。
max( ):返回最大的元素。
min( ):返回最小的元素。
2.包含:创建一个包含其他类对象的类:
class Student
{
private:
string name;
valarray<double> scores;
};
Student类的成员函数可以使用string和valarray<double>类的公有接口来访问和修改name和scores,但在类的外面不可以,只能通过Student类的公有接口来访问name和score。【为Student类获得了其他成员函数的实现,但没有继承接口。】
3.使用包含时将使用对象名来调用方法。