对象数组
声明对象数组的方法与声明标准类型数组相同:
Stock mystuff[4];
每个元素(mystuff[0]、mystuff[1]等)都是Stock对象,可以使用Stock方法:
mystuff[0].update();
mystuff[3].show();
const Stock * tops = mystuff[2].topval(mystuff[1]);
可以用构造函数来初始化数组元素。在这种情况下,必须为每个元素调用构造函数:
const int STKS = 4;
Stock stocks[STKS] = {
Stock("NanoSmart",12.5,20),
Stock("Boffo Objects",200,2.0),
Stock("Monolithic Obelisks",130,3.25),
Stock("Fleep Enterprises",60,6.5)
};
没有被初始化的元素使用默认构造函数进行初始化。
程序10.9 usestock2.cpp
#include <iostream>
#include "stock20.h"
const int STKS = 4;
int main()
{
Stock stocks[STKS] = {
Stock("NanoSmart",12.5,20),
Stock("Boffo Objects",200,2.0),
Stock("Monolithic Obelisks",130,3.25),
Stock("Fleep Enterprises",60,6.5)
};
std::cout << "Stock holdings:\n";
int st;
for (st = 0; st < STKS; st++)
stocks[st].show();
const Stock * top = &stocks[0];
for (st = 1; st < STKS; st++)
top = &top->topval(stocks[st]);
std::cout << "\nMost valuable holding:\n";
top->show();
system("pause");
return 0;
}