+ 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(); }
3 ответов
+ 7
Это радует, что всё получилось😊 Пожалуйста😊
+ 5
Чтобы использовать объекты cout и endl, относящиеся к пространству имён std, нужно получить доступ либо с помощью директивы using:
using namespace std;
либо с помощью явного указания пространства для каждого объекта, например:
std::cout << "Ninja!" << std::endl;
Ошибка из-за переобъявления указателя Enemy*e1 (опечатка?), нужно создать два указателя на два объекта:
Enemy*e1=&n;
Enemy*e2=&m;
+ 1
спасибо большое, нашёл ошибку и получилось