أنشِئ Class :
اسمه: publication
المتغيرات : title , price
يحوي : Parameterized constructor و default constructor و دالة تقرأ من المستخدم البيانات للمتغيرات وتخزنها و أخيرًا دالة طباعة.
هذا الـ Class هو Base Class ، والتالية هي Derived Classes : “مفهوم الوراثة “
الـ Class الأول :
اسمه: Book
المتغيرات : Pagecount
يحوي : Parameterized constructor يقوم بعمل initialize لـ Data Member متضمنة الـ Data Member للـ Base Class و دالة تقرأ من المستخدم البيانات للمتغيرات وتخزنها و أخيرًا دالة طباعة.
الـ Class الثاني :
اسمه: Tape
المتغيرات : PlayingTinM “Playing Time in minute” .
يحوي : Parameterized constructor يقوم بعمل initialize لـ Data Member متضمنة الـ Data Member للـ Base Class و دالة تقرأ من المستخدم البيانات للمتغيرات وتخزنها و أخيرًا دالة طباعة.
-قم بفصل الـ Class interface في header file و Class implementation في cpp file
الحل:
//publication.h #include <iostream> #include <string> using namespace std; #ifndef CLASS_PUBLICATION #define CLASS_PUBLICATION class publication { private: string title; float price; public: publication(); publication(string t, float p); void getdata(); void putdata() const; }; #endif -------------------------------------------------- //publication.cpp #include <iostream> #include <string> #include "publication.h" using namespace std; publication::publication(){ title = ""; price = 0; } publication::publication(string t, float p){ title = t; price = p; } void publication::getdata() { cout << "Enter title:"; cin >> title; cout << "Enter price: "; cin >> price; } void publication::putdata() const { cout << "\nTitle: " << title; cout << "\nPrice: " << price << endl; } ----------------------------------------------- //book.h #include <iostream> #include <string> #include "publication.h" using namespace std; class Book :public publication { int PageCount; public: Book(int, float, string); void getdata(); void putdata()const; }; ---------------------------------- //book.cpp #include <iostream> #include <string> #include "publication.h" #include "Book.h" using namespace std; Book::Book(int Pg, float Price, string T) :PageCount(Pg), publication(T, Price){} void Book::getdata() { publication::getdata(); cout << "Enter the Page number: "; cin >> PageCount; } void Book::putdata()const { cout << "Page Count: " << PageCount << endl << endl; } ------------------------------------ //tape.h #include <iostream> #include <string> #include "publication.h" using namespace std; class Tape : public publication { float PlayingTinM; public: Tape(float, float, string); void getdata(); void putdata()const; }; ---------------------------------------- //tape.cpp #include <iostream> #include <string> #include "publication.h" #include "Tape.h" using namespace std; Tape::Tape(float PTIM, float Price, string T) :PlayingTinM(PTIM), publication(T, Price){} void Tape::getdata() { publication::getdata(); cout << "Enter the Playing Time in miunte: "; cin >> PlayingTinM; } void Tape::putdata()const { cout << "the Playing Time in miunte: " << PlayingTinM << endl; }
السطر 7 و 8 و 23 : هذا الـ Directive هو حل لهذا الخطأ
Error 1 error C2011: ‘publication’ : ‘class’ type redefinition c:\users\amjad\documents\visual studio 2013\projects\myblog\myblog\publication.h 7 1 myBlog
السطر 52 و 88 : طريقة الوراثة بكتابة نوع الوراثة ثم اسم الـ Base Class
السطر 70 و 104 : طريقة عمل initialize لمتغيرات الـ Base Class عن طريق مناداة الـ Constructor للـ Base Class
Advertisements