Новичок
Джуниор
Регистрация: 24.12.2014
Сообщений: 1
|
Множественное наследование ( доступ к базовым классам через puublic ,private)
Программа запускается, но сразу же выдает ошибку. Помогите пожалуйста решить эту проблему.
И если что-то написано неправильно, помогите ,пожалуйста, исправить ошибки.
Возможна ли реализация здесь абстрактных классов?
Код:
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <iostream>
#include <locale.h>
using namespace std;
class Type_TS
{
public:
Type_TS(char *, int);
virtual void show_TS(void);
private:
char name[40];
int pas;
};
Type_TS::Type_TS(char *name,int pas)
{
strcpy(Type_TS::name, name);
Type_TS::pas = pas;
}
void Type_TS::show_TS(void)
{
cout << "Наименование транспортного средства: " << name << endl;
cout << "Количество пассажиров: " << pas << endl;
}
class board_comp
{
public:
board_comp(char*,char*,int, float, int);
virtual void show_board_comp(void);
protected:
char os[70];
char name_comp[80];
int RAM;
float diag_mon;
int temp;
char* get_os() {return os ;};
char* get_name_comp(){return name_comp ;};
int get_RAM(){return RAM ;};
float get_diag_mon(){return diag_mon ;};
int get_temp(){return temp ;};
};
board_comp::board_comp(char *name_comp,char *os,int RAM, float diag_mon, int temp)
{
strcpy(board_comp::name_comp,name_comp);
board_comp::RAM = RAM;
board_comp::diag_mon=diag_mon;
strcpy(board_comp::os,os);
board_comp::temp=temp;
}
void board_comp::show_board_comp(void)
{
cout << "Название бортового компьютера: " << name_comp << endl;
cout<<"Диагональ экрана"<<diag_mon<<"Дюйма"<<endl;
cout << "Оперативное запоминающее устройство: " << RAM << " МВайт" << endl;
cout << "Рабочая минимальная температура: " << temp << " градусов Цельсия" << endl;
cout << "ОЗУ: " << RAM << " МВайт" << endl;
}
class concept_version : public Type_TS, private board_comp
{
public:
concept_version(int,int,int,float,char *, int, char*,char*,int, float, int);
virtual void show_concept_version (void);
protected:
int day;
int month;
int year;
float cost;
};
concept_version::concept_version(int day,int month,int year,float cost,char *name,int pas,char *name_comp,char *os,int RAM, float diag_mon, int temp):Type_TS(name,pas),board_comp(name_comp, os, RAM, diag_mon, temp)
{
concept_version::day = day;
concept_version::month = month;
concept_version::year = year;
concept_version::cost = cost;
}
void concept_version::show_concept_version(void)
{
cout << "Дата релиза: " << day <<"."<<month<<"."<<year<< endl;
cout << "Предварительная цена: " << cost << "$" << endl;
show_board_comp();
show_TS();
}
class budget_TS: public concept_version
{
public:
budget_TS(char* , float ,int ,int ,int ,float ,char *,int ,char *,char *,int , float , int );
void show___TS(void);
protected:
char* type_dv;
float vol_dv;
};
budget_TS::budget_TS(char* type_dv, float vol_dv,int day,int month,int year,float cost,char *name,int pas,char *name_comp,char *os,int RAM, float diag_mon, int temp):concept_version(day, month, year, cost,name,pas,name_comp, os, RAM, diag_mon, temp)
{
strcpy(budget_TS::type_dv, type_dv);
budget_TS::vol_dv=vol_dv;/**/
}
void budget_TS::show___TS(void)
{
cout << "Тип двигателя: " << type_dv << endl;
cout << "Объем двигателя: " << vol_dv<< endl;
show_concept_version();
}
class collect_TS: public concept_version
{
public:
collect_TS(char* , int,int ,int ,int ,int ,float ,char *,int ,char *,char *,int , float , int );
virtual void show__TS(void);
protected:
char* spec;
int acsesss;
int exempl;
};
collect_TS::collect_TS(char* spec, int acsesss,int exempl,int day,int month,int year,float cost,char *name,int pas,char *name_comp,char *os,int RAM, float diag_mon, int temp):concept_version(day, month, year, cost,name,pas,name_comp, os, RAM, diag_mon, temp)
{
strcpy(collect_TS::spec, spec);
collect_TS::acsesss=acsesss;
collect_TS::exempl=exempl;
}
void collect_TS::show__TS(void)
{
cout << "Количество выпущенных экземпляров:: " << exempl << endl;
cout << "Количество дополнительных аксессуаров: " << acsesss<< endl;
cout << "Особенности: " << spec<< endl;
show_concept_version();
}
void main(void)
{
setlocale(LC_ALL, "russian");
collect_TS col("BMV-NIONO6", 20, 200, 15, 07, 2015, 9560000, "name", 4, "PI-602", "Wind", 47,8,-15);
col.show__TS();
budget_TS bud("Lok-95", 60, 15, 07, 2015, 9560000, "name", 4, "PI-602", "Wind", 47,8,-15);
bud.show___TS();
system("pause");
}
|