包含對(duì)象成員的類
valarray類
這個(gè)類用于處理數(shù)值,支持諸如將數(shù)組中所有元素的值相加以及在數(shù)組中找出最大和最小的值等操作胀瞪。valarray是一個(gè)模板類。用一個(gè)valarray聲明一個(gè)對(duì)象:
valarray<int> q_values;
valarray<double> weights;
這個(gè)類的方法比vector和array的多一些。valarray的一些方法:
私有繼承和保護(hù)繼承
使用保護(hù)派生或私有派生后筐骇,基類的公有成員將稱為保護(hù)成員或私有成員秫筏。要讓基類的方法可以在派生類外使用的話种冬,方法之一是定義一個(gè)使用該基類方法的派生類方法付燥。另一種方法是使用一個(gè)using聲明來指出派生類可以使用特定的基類成員。
類模板
模板類示例:
template<typename T>
class Stack
{
private:
T items[10];
public:
bool push(const Type& item);
};
對(duì)于類成員方法枝哄,實(shí)現(xiàn)時(shí)需要這樣定義:
template<typename T>
bool Stack<T>::push(const Type& item){}
使用這個(gè)模板類時(shí)要表明類型:
Stack<int> kernels;
使用多個(gè)模板:
template<typename T1, typename T2> class Topo{};
模板可以使用默認(rèn)類型:
template<typename T1, typename T2 = int> class Topo{};
模板可以加上非類型參數(shù):
template<typename T, int n >
class ArrayTP
{};
n可用于指定例如數(shù)組的大小肄梨,C++的Array類就是這樣的。
模板本身可以用作模板的參數(shù):
template<template<typename T> class Thing>
class Crab