+ 1

Что не так делаю?

#include <iostream> //#include<virtual void> #include<string> class Enemy { public: virtual void attack(){} }; class Ninja: public Enemy { public: void attack() { cout << "Ninja!"<<endl; } }; class Monster: public Enemy { public: void attack() { cout << "Monster!"<<endl; } }; int main() { Ninja n; Monster m; Enemy*e1=&n; Enemy*e1=&m; e1->attack(); e2->attack(); }

9th Oct 2018, 11:59 AM
Igor Petrov
Igor Petrov - avatar
3 ответов
+ 7
Это радует, что всё получилось😊 Пожалуйста😊
9th Oct 2018, 1:48 PM
NezhnyjVampir
+ 5
Чтобы использовать объекты cout и endl, относящиеся к пространству имён std, нужно получить доступ либо с помощью директивы using: using namespace std; либо с помощью явного указания пространства для каждого объекта, например: std::cout << "Ninja!" << std::endl; Ошибка из-за переобъявления указателя Enemy*e1 (опечатка?), нужно создать два указателя на два объекта: Enemy*e1=&n; Enemy*e2=&m;
9th Oct 2018, 1:36 PM
NezhnyjVampir
+ 1
спасибо большое, нашёл ошибку и получилось
9th Oct 2018, 1:45 PM
Igor Petrov
Igor Petrov - avatar