Я пишу код для разделения интерфейса и его реализации, но в нем есть ошибка, я следовал правильному синтаксису интерфейсов и классов, я видел много примеров на эту тему, зная, что я бывший программист C #.
код:
#include "stdafx.h"
#include<iostream>
#include <String>
using namespace std;
///////////////////EMPLOYEE CLASS AND INTERFACE //////////////
class Interface_Employee
{
public:
Interface_Employee() {}
virtual ~Interface_Employee() {}
virtual void print() = 0; // "= 0" part makes this method pure virtual, and
// also makes this class abstract.
};
class Employee : public Interface_Employee
{
int ID, Age;
Bank ac1, ac2; //composition
public:
Employee(int a, int b, Bank account1, Bank account2)
: ac1(account1), ac2(account2)
{
ID = a; Age = b;
}
~Employee() {}
// Provide implementation for the first method
void print()
{
cout << "Age is:/n" << Age << "ID is:" << ID;
ac1.print();
ac2.print();
}
};
////////////BANK CLASS AND INTERFACE//////////////////
class Interface_Bank
{
public:
Interface_Bank() {}
virtual ~Interface_Bank() {}
virtual void print() = 0; // "= 0" part makes this method pure virtual, and
// also makes this class abstract.
};
class Bank : public Interface_Bank
{
private:
int balance, ID;
public:
Bank(int a, int b)
{
balance = a;
ID = b;
}
~Bank() {}
// Provide implementation for the first method
void print()
{
cout << "Balance is:/n" << balance << "ID is:" << ID;
}
};
class Output {
int main(void)
{
Bank a(1000, 1);
Bank b(2000, 2);
Employee c(2, 25, a, b);
return 0;
}
};
Ошибка:
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка C3646 'ac1': неизвестный спецификатор переопределения console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 22 * 1012 *
Ошибка C2059 синтаксическая ошибка: ',' console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 22 * 1017 *
Ошибка C2238 неожиданный токен (ы) перед ';' console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 22 * 1022 *
Ошибка Синтаксическая ошибка C2061: идентификатор «Банк» console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 24
Ошибка C2065 'account1': необъявленный идентификатор console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 25
Ошибка C2065 'account2': необъявленный идентификатор console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 25
Ошибка C2614 «Сотрудник»: недопустимая инициализация члена: «ac1» не является базой или членом console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 25
Ошибка C2614 «Сотрудник»: недопустимая инициализация члена: «ac2» не является базой или членом console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 25
Ошибка C2065 'ac1': необъявленный идентификатор console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 37
Ошибка C2228 слева от .print должна иметь класс / struct / union console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 37
Ошибка C2065 'ac2': необъявленный идентификатор console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 38
Ошибка C2228 слева от .print должна иметь класс / struct / union console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 38
Ошибка C2661 «Сотрудник :: Сотрудник»: перегруженная функция не принимает 4 аргумента console_App c: \ users \ dell_alrfou \ source \ repos \ console_app \ console_app \ console_app.cpp 81