关于c++指针

[复制链接]
查看11 | 回复1 | 2008-9-5 09:38:20 | 显示全部楼层 |阅读模式
#include
#include
using namespace std;
class Shape
{
public:
virtual void draw()=0;
virtual ~Shape(){};
};
class Circle : public Shape
{
public:
void draw()
{
cout Container;
typedef Container::iterator Iter;
Container shapes;
shapes.push_back(new Circle);
shapes.push_back(new Square);
shapes.push_back(new Triangle);
for(Iter i=shapes.begin();i!=shapes.end();i++)
(*i)->draw();
for(Iter j=shapes.begin();j!=shapes.end();j++)
delete *j;
system("pause");
}
这是《thinking in c++》中STL的一个例子,现在有个问题:
由Container shapes产生的shapes是什么类型?不是Shape*么?
如果是,那为什么遍历迭代器中元素的时候不是shapes->begin(),而是shapes.begin()?求详细解答

回复

使用道具 举报

千问 | 2008-9-5 09:38:20 | 显示全部楼层
shpes的变量类型是vector,也就是说,shapes是一个vector,该vector存储的内容是一系列指向shape类型的指针。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行