64,646
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Item
{
public:
Item(int n) : value(n) { }
int number() const { return value; }
void number(int newVal) { value = newVal; }
private:
int value;
};
class Items
{
public:
Items() { }
~Items() { }
private: ///禁止拷贝和赋值
Items(const Items&);
Items(const Items&&); ///C++98标准下可去掉此行
Items& operator=(const Items&);
public:
Item* operator[](int i)const{
return items[i];
}
void pushitem(int nIndex, Item* pItem)
{
if (nIndex < 10)
{
items[nIndex] = pItem;
}
}
public:
///补充并实现其它成员函数
/// ....
private:
Item* items[10];
};
class Client
{
public:
void write(Items& aSet) const {
for (int i = 0; i < 10; ++i) {
aSet[i]->number(i * 2);
}
}
void read(const Items& aSet) const {
for (int i = 0; i < 10; ++i) {
cout << aSet[i]->number() << " ";
}
cout << endl;
}
};
int main()
{
Client client;
Items nums;
for (int i = 0; i < 10; ++i) {
nums.pushitem(i, new Item(i));
}
client.read(nums);
client.write(nums);
client.read(nums);
for (int i = 0; i < 10; ++i) {
delete nums[i];
}
getchar();
return 0;
}
Item*& operator[](const int i)
{
return items[i];
}
const Item* operator[](const int i) const
{
return items[i];
}