Тема: Є завдання створити похідний клас
Але виникають 4 помилки:
Ошибка 6 error C2511: Telephone::Telephone(char *,char *,char *,int,char *,char *,char *): перегруженная функция-член не найдена в "Telephone" d:\fox\лабораторна робота 7\code\student.h 91 1 code
Ошибка 5 error C2533: Telephone::{ctor}: конструкторы не разрешены для возвращаемого типа d:\fox\лабораторна робота 7\code\student.h 91 1 code
Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\fox\лабораторна робота 7\code\student.h 33 1 code
Ошибка 7 error C1004: непредвиденное обнаружение конца файла D:\fox\Лабораторна робота 7\code\work.cpp 45 1 code
Саме завдання:
Базовий клас Особа – прізвище, ім'я, по батькові, дата народження
Віртуальна функція Відображення елементів класу Show()
Похідний клас 1 Телефони стаціонарні – особа, № телефону, місто, країна
work.cpp
#include "student.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
// //////////////////////////////////////////////////////////робота з класом студент
// створюємо три екземпляри похідного класу class Student :
// екземпляр stud1 - використовуючи конструктор з параметрами
// екземпляр stud4 - використовуючи конструктор копіювання,
// і призначаємо студенту стипендію
// екземпляр stud3 - використовуючи конструктор за умовчанням, без заповнення
class Telephone stud1=Telephone("Fox", "Nicolia", "Nic", 1996, "575476", "Черінігів", "Україна"); // Створити екземпляр класу
// виводимо вміст членів класу
cout << "Ім'я - " << stud1.getName() << " Призвіще - " << stud1.getSName() << endl;
cout << "Номер - " << stud1.getNomer_telephone() << " Місто - " << stud1.getTown() << endl;
//////
stud1.Show(); // роздрукувати стать, ФІБ, вік студента – наслідуваний метод class Person
class Telephone stud4=stud1; // скопіювати вміст екземпляру класу в новий екземпляр
cout << endl << "Ekzemplyar new class: " << endl;
stud4.Show(); // роздрукувати стать, ФІБ, вік студента
stud4.setTown("Київ"); // установити звичайну стипендію
// виводимо вміст членів класу
cout << "Ім'я - " << stud1.getName() << " Призвіще - " << stud1.getSName() << endl;
cout << "Номер - " << stud1.getNomer_telephone() << " Місто - " << stud1.getTown() << endl;
//////
stud4.Show();
class Telephone stud3=Telephone( ); // Створити екземпляр класу
cout << endl << "Instance of the class - garbage" << endl;
stud3.Show();
system("PAUSE");
return 0;
}
student.h
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
class Person
{
public:
string strSName;
string strName;
string strPatron;
int iData;
// Person(const Person &Person)
// {
// this -> strSName = Person.strSName;
// this -> strName = Person.strName;
// this -> strPatron = Person.strPatron;
// this -> iAge = Person.iAge;
// this -> strRate = Person.strRate;
// };
Person() {};
Person(char *chSName, char *cName, char *chPatron, int iData=0);
Telephone(const Person &Person)
{
setSName( (char*)Person.strSName.c_str() );
setName( (char*)Person.strName.c_str() );
setPatron( (char*)Person.strPatron.c_str() );
setData( Person.iData );
};
virtual ~Person() { };
// змінити елементи екземпляру класу
void setSName(char *chSName) {this->strSName=chSName;}
void setName(char *chName) {this->strName=chName;}
void setPatron(char *chPatron) {this->strPatron=chPatron;}
void setData(int iData) {this->iData = iData;}
// отримати елементи екземпляру класу
string getSName() const {return strSName;}
string getName() const {return strName;}
string getPatron() const {return strPatron;}
int getData() const {return iData;}
};
class Telephone: public Person
{
string iNomer_telephone;
string strTown;
string strCountry;
public:
Telephone() {};
Telephone(char *chSName, char *chName, char *chPatron, int iData=0,
string iNomer_telephone = 0, string strTown = 0, string strCountry = 0);
Telephone(const Telephone &Telephone) : Person()
{
setNomer_telephone( (char*)Telephone.iNomer_telephone );
setTown( (char*)Telephone.strTown.c_str() );
setCountry( (char*)Telephone.strCountry.c_str() );
};
virtual ~Telephone() { };
// змінити елементи екземпляру класу
void setNomer_telephone(int iNomer_telephone) {this->iNomer_telephone=iNomer_telephone;}
void setTown(char *chTown) {this->strTown=chTown;}
void setCountry(char *chCountry) {this->strCountry=chCountry;}
// отримати елементи екземпляру класу
string getNomer_telephone() const {return iNomer_telephone;}
string getTown() const {return strTown;}
string getCountry() const {return strCountry;}
// Друк інформацію про студента
void Show()
{
cout << getSName() << " " << getName() << " " << getPatron() << " " << getNomer_telephone() << " " << getTown();
cout << getCountry() << " " << endl;
}
}
// Опис методів похідного класу
// Конструктор опис, змінні char - не пусті значення, інші або = 0, або всі задані
Telephone::Telephone(char *chSName, char *chName, char *chPatron, int iData=0,
char *iNomer_telephone, char *strTown, char *strCountry) : Person(chSName, chName, chPatron)
// типи змінних співпадають з типами у базовому класі
{
setNomer_telephone(iNomer_telephone);
setTown(chTown);
setCountry(chCountry);
setSName(chSName);
setName(chName);
setPatron(chPatron);
}