{ if (i < 0 || i >= MONTHS) throw bad_index(i); return gross[i]; }
double &Sales::operator[](int i) { if (i < 0 || i >= MONTHS) throw bad_index(i); return gross[i]; }
LabeledSales::nbad_index::nbad_index(const string &lb, int ix, const string &s) :Sales::bad_index(ix, s) { lbl = lb; }
LabeledSales::LabeledSales(const string &lb, int yy) : Sales(yy) { label = lb; }
LabeledSales::LabeledSales(const string &lb, int yy, const double *gr, int n) : Sales(yy, gr, n) { label = lb; }
double LabeledSales::operator[](int i)const { if (i < 0 || i >= MONTHS) throw nbad_index(Label(), i); return Sales::operator[](i); }
double &LabeledSales::operator[](int i) { if (i < 0 || i >= MONTHS) throw nbad_index(Label(), i); return Sales::operator[](i); }
//use_sales.cpp #include \
int main() {
double vals1[12] = { 1220, 1100, 1122, 2212, 1232, 2334, 2884, 2393, 3302, 2922, 3002, 3544 };
double vals2[12] = { 12, 11, 22, 21, 32, 24, 28, 29, 33, 29, 32, 35 };
Sales sales1(2011, vals1, 12);
LabeledSales sales2(\Sales::bad_index *s;
LabeledSales::nbad_index *l; cout << \try { int i; cout << \ for (i = 0; i < 12; ++i) { cout << sales1[i] << ' '; if (i % 6 == 5) cout << endl; } cout << \ cout << \ for (i = 0; i <= 12; ++i) { cout << sales2[i] << ' '; if (i % 6 == 5) cout << endl; } cout << \}
catch (logic_error &bad) { cout << bad.what(); if (l = dynamic_cast
}
cout << \}
cout << \try { sales2[2] = 37.5; sales1[20] = 23345; cout << \}
catch (logic_error &bad) { cout << bad.what(); if (l = dynamic_cast
cout << \system(\return 0;
相关推荐: