//bird.h
#ifndef BIRD_H
#define BIRD_H
#include<vector>
using namespace std;
class bird
{
public:
virtual void fly()=0;
};
class WildGoose: public bird
{
public:
virtual void fly();
};
class Parrot: public bird
{
public:
virtual void fly();
};
class birdcage
{
int num;
protected: vector<bird*> t;
public:
birdcage();
int get();
void add(bird* b);
void allfly();
};
#endif // BIRD_H
//bird.cpp
#include "bird.h"
#include<iostream>
using namespace std;
void WildGoose::fly()
{
cout<<"WildGoose fly"<<endl;
}
void Parrot::fly()
{
cout<<"Parrot fly"<<endl;
}
birdcage::birdcage():num(0){}
int birdcage::get(){return num;}
void birdcage::add(bird* b)
{
t.push_back(b);
num++;
}
void birdcage::allfly()
{
for(int i=0;i<get();i++)
{
t[i]->fly();
}
}
//main。cpp
#include <iostream>
#include "bird.h"
using namespace std;
int main(int argc, char *argv[])
{
WildGoose w1;Parrot p1;
birdcage b;
b.add(&w1);b.add(&p1);
b.allfly();
return 0;
}
/*vector是一个数组,可以存放任意相同类型的数据,
且容积可变。此处将bird类作用相同类型进行存储。
push_back:在数组尾部增加元素
pop_back:删除数组尾部元素
operator:通过下标访问数组中的元素*/
vector学习,使用vector存放鸟,并在鸟笼类中实现方法
最新推荐文章于 2022-02-10 20:34:55 发布