Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- class Animal {
- public:
- virtual void talk();
- };
- class Duck : public Animal {
- public:
- void talk() { cout << "quack" << endl; }
- };
- class Horse : public Animal {
- public:
- void talk() { cout << "neigh" << endl; }
- };
- int main(){
- vector<*Animal> animals;
- animals.push_back(new Duck());
- animals.push_back(new Horse());
- for(auto i = animals.begin(); i != animals.end(); i++){
- Animal* a = *i;
- a->talk();
- }
- }
- /*
- λ g++ main.cpp -o main
- main.cpp: In function 'int main()':
- main.cpp:22:13: error: '*' cannot appear in a constant-expression
- vector<*Animal> animals;
- ^
- main.cpp:22:19: error: template argument 1 is invalid
- vector<*Animal> animals;
- ^
- main.cpp:22:19: error: template argument 2 is invalid
- main.cpp:23:13: error: request for member 'push_back' in 'animals', which is of non-class type 'int'
- animals.push_back(new Duck());
- ^
- main.cpp:24:13: error: request for member 'push_back' in 'animals', which is of non-class type 'int'
- animals.push_back(new Horse());
- ^
- main.cpp:25:14: error: 'i' does not name a type
- for(auto i = animals.begin(); i != animals.end(); i++){
- ^
- main.cpp:25:35: error: expected ';' before 'i'
- for(auto i = animals.begin(); i != animals.end(); i++){
- ^
- main.cpp:25:35: error: 'i' was not declared in this scope
- main.cpp:25:48: error: request for member 'end' in 'animals', which is of non-class type 'int'
- for(auto i = animals.begin(); i != animals.end(); i++){
- */
Add Comment
Please, Sign In to add comment