#include <iostream>
#include <string.h>
using namespace std;
class Person{
char name[20];
int age;
char aadhar[13];
public:
Person(char const *name,int age,char const *aadhar){
strcpy(this->name,name);
this->age=age;
strcpy(this->aadhar,aadhar);
// cout << "in Person's Parameterised Constructor" << endl;
}
Person(){
strcpy(this->name,"");
this->age=0;
strcpy(this->aadhar,"");
// cout << "in Person's Default Constructor" << endl;
}
protected:
void getName(char const *name){
strcpy(this->name,name);
}
void displayName(){
cout << "\n\nDetails of person: Name- " << name << "\n";
}
void getAge(int age){
this->age=age;
}
void displayAge(){
cout << "Age- " << age << "\n";
}
void getAadhar(char const *aadhar){
strcpy(this->aadhar,aadhar);
}
void displayAadhar(){
cout << "Aadhar- " << aadhar << "\n";
}
};
class library{
char book[20];
int issue_id;
public:
library(char const *book,int issue_id){
strcpy(this->book,book);
this->issue_id=issue_id;
}
library(){
strcpy(this->book,"");
this->issue_id=0;
}
protected:
void getBook(char const *book){
strcpy(this->book,book);
}
void displayBook(){
cout << "Book- " << book << "\n";
}
void getIssue_id(int issue_id){
this->issue_id=issue_id;
}
void displayIssue_id(){
cout << "Issue Id- " << issue_id << "\n";
}
};
class Student : Person,library{
int roll_no;
char course[10];
float marks;
public:
Student(char const *name,int age,char const *aadhar,int roll_no,char const *course,float marks,char const *book,int issue_id):Person(name,age,aadhar),library(book,issue_id){
this->roll_no=roll_no;
strcpy(this->course,course);
this->marks=marks;
// cout << "in Student's Parameterised constructor" << endl;
}
Student():Person(),library(){
this->roll_no=0;
strcpy(this->course,"");
this->marks=0.0;
}
void getRoll(char const *name,int age,char const *aadhar,int roll_no){
this->roll_no=roll_no;
getName(name);
getAge(age);
getAadhar(aadhar);
}
void displayRoll(){
displayName();
displayAge();
displayAadhar();
cout << "RollNo.- " << roll_no << "\n";
}
void getCourse(char const *course){
strcpy(this->course,course);
}
void displayCourse(){
cout << "Course- " << course << "\n";
}
void getMarks(float marks,char const *book,int issue_id){
this->marks=marks;
getBook(book);
getIssue_id(issue_id);
}
void displayMarks(){
cout << "Marks- " << marks << "\n";
displayBook();
displayIssue_id();
cout << "\n";
}
};
int main(){
// Parameterised constructor object
Student std("Vikas",39,"ACIS1983318Y",28,"DVLSI",99.5,"The Jungle Book",1203);
std.displayRoll();
std.displayCourse();
std.displayMarks();
// Default constructor object
Student std1;
std1.getRoll("Shashank",5,"AXPY125449SA",24);
std1.getCourse("DVLSI");
std1.getMarks(91.3,"Julius Caesar",1508);
std1.displayRoll();
std1.displayCourse();
std1.displayMarks();
}
CSNpbmNsdWRlIDxpb3N0cmVhbT4KCSNpbmNsdWRlIDxzdHJpbmcuaD4KCXVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoJY2xhc3MgUGVyc29uewoJCWNoYXIgbmFtZVsyMF07CgkJaW50IGFnZTsKCQljaGFyIGFhZGhhclsxM107CgkJCgkJcHVibGljOgoJCQoJCVBlcnNvbihjaGFyIGNvbnN0ICpuYW1lLGludCBhZ2UsY2hhciBjb25zdCAqYWFkaGFyKXsKCQkJc3RyY3B5KHRoaXMtPm5hbWUsbmFtZSk7CgkJCXRoaXMtPmFnZT1hZ2U7CgkJCXN0cmNweSh0aGlzLT5hYWRoYXIsYWFkaGFyKTsKCS8vCQljb3V0IDw8ICJpbiBQZXJzb24ncyBQYXJhbWV0ZXJpc2VkIENvbnN0cnVjdG9yIiA8PCBlbmRsOwoJCX0KCgkJUGVyc29uKCl7CgkJCXN0cmNweSh0aGlzLT5uYW1lLCIiKTsKCQkJdGhpcy0+YWdlPTA7CgkJCXN0cmNweSh0aGlzLT5hYWRoYXIsIiIpOwoJLy8JCWNvdXQgPDwgImluIFBlcnNvbidzIERlZmF1bHQgQ29uc3RydWN0b3IiIDw8IGVuZGw7CgkJfQoJCQoJCXByb3RlY3RlZDoKCgkJdm9pZCBnZXROYW1lKGNoYXIgY29uc3QgKm5hbWUpewoJCQlzdHJjcHkodGhpcy0+bmFtZSxuYW1lKTsKCQl9CgkJCgkJdm9pZCBkaXNwbGF5TmFtZSgpewoJCQljb3V0IDw8ICJcblxuRGV0YWlscyBvZiBwZXJzb246IE5hbWUtICIgPDwgbmFtZSA8PCAiXG4iOwoJCX0KCQkKCQl2b2lkIGdldEFnZShpbnQgYWdlKXsKCQkJdGhpcy0+YWdlPWFnZTsKCQl9CgoJCXZvaWQgZGlzcGxheUFnZSgpewoJCQljb3V0IDw8ICJBZ2UtICIgPDwgYWdlIDw8ICJcbiI7CgkJfQoJCQoJCXZvaWQgZ2V0QWFkaGFyKGNoYXIgY29uc3QgKmFhZGhhcil7CgkJCXN0cmNweSh0aGlzLT5hYWRoYXIsYWFkaGFyKTsKCQl9CgoJCXZvaWQgZGlzcGxheUFhZGhhcigpewoJCQljb3V0IDw8ICJBYWRoYXItICIgPDwgYWFkaGFyIDw8ICJcbiI7CgkJfQoJfTsKCgljbGFzcyBsaWJyYXJ5ewoJCWNoYXIgYm9va1syMF07CgkJaW50IGlzc3VlX2lkOwoKCQlwdWJsaWM6CgoJCWxpYnJhcnkoY2hhciBjb25zdCAqYm9vayxpbnQgaXNzdWVfaWQpewoJCQlzdHJjcHkodGhpcy0+Ym9vayxib29rKTsKCQkJdGhpcy0+aXNzdWVfaWQ9aXNzdWVfaWQ7CgkJfQoKCQlsaWJyYXJ5KCl7CgkJCXN0cmNweSh0aGlzLT5ib29rLCIiKTsKCQkJdGhpcy0+aXNzdWVfaWQ9MDsKCQl9CgkJCgkJcHJvdGVjdGVkOgoJCQoJCXZvaWQgZ2V0Qm9vayhjaGFyIGNvbnN0ICpib29rKXsKCQkJc3RyY3B5KHRoaXMtPmJvb2ssYm9vayk7CgkJfQoJCQoJCXZvaWQgZGlzcGxheUJvb2soKXsKCQkJY291dCA8PCAiQm9vay0gIiA8PCBib29rIDw8ICJcbiI7CgkJfQoKCQl2b2lkIGdldElzc3VlX2lkKGludCBpc3N1ZV9pZCl7CgkJCXRoaXMtPmlzc3VlX2lkPWlzc3VlX2lkOwoJCX0KCgkJdm9pZCBkaXNwbGF5SXNzdWVfaWQoKXsKCQkJY291dCA8PCAiSXNzdWUgSWQtICIgPDwgaXNzdWVfaWQgPDwgIlxuIjsKCQl9Cgl9OwoKCWNsYXNzIFN0dWRlbnQgOiBQZXJzb24sbGlicmFyeXsKCQlpbnQgcm9sbF9ubzsKCQljaGFyIGNvdXJzZVsxMF07CgkJZmxvYXQgbWFya3M7CgoJCXB1YmxpYzoKCgkJU3R1ZGVudChjaGFyIGNvbnN0ICpuYW1lLGludCBhZ2UsY2hhciBjb25zdCAqYWFkaGFyLGludCByb2xsX25vLGNoYXIgY29uc3QgKmNvdXJzZSxmbG9hdCBtYXJrcyxjaGFyIGNvbnN0ICpib29rLGludCBpc3N1ZV9pZCk6UGVyc29uKG5hbWUsYWdlLGFhZGhhciksbGlicmFyeShib29rLGlzc3VlX2lkKXsKCQkJdGhpcy0+cm9sbF9ubz1yb2xsX25vOwoJCQlzdHJjcHkodGhpcy0+Y291cnNlLGNvdXJzZSk7CgkJCXRoaXMtPm1hcmtzPW1hcmtzOwoJLy8JCWNvdXQgPDwgImluIFN0dWRlbnQncyBQYXJhbWV0ZXJpc2VkIGNvbnN0cnVjdG9yIiA8PCBlbmRsOwoJCX0KCgkJU3R1ZGVudCgpOlBlcnNvbigpLGxpYnJhcnkoKXsKCQkJdGhpcy0+cm9sbF9ubz0wOwoJCQlzdHJjcHkodGhpcy0+Y291cnNlLCIiKTsKCQkJdGhpcy0+bWFya3M9MC4wOwoJCX0KCgkJdm9pZCBnZXRSb2xsKGNoYXIgY29uc3QgKm5hbWUsaW50IGFnZSxjaGFyIGNvbnN0ICphYWRoYXIsaW50IHJvbGxfbm8pewoJCQl0aGlzLT5yb2xsX25vPXJvbGxfbm87CgkJCWdldE5hbWUobmFtZSk7CgkJCWdldEFnZShhZ2UpOwoJCQlnZXRBYWRoYXIoYWFkaGFyKTsKCQl9CgoJCXZvaWQgZGlzcGxheVJvbGwoKXsKCQkJZGlzcGxheU5hbWUoKTsKCQkJZGlzcGxheUFnZSgpOwoJCQlkaXNwbGF5QWFkaGFyKCk7CgkJCWNvdXQgPDwgIlJvbGxOby4tICIgPDwgcm9sbF9ubyA8PCAiXG4iOwoJCX0KCgkJdm9pZCBnZXRDb3Vyc2UoY2hhciBjb25zdCAqY291cnNlKXsKCQkJc3RyY3B5KHRoaXMtPmNvdXJzZSxjb3Vyc2UpOwoJCX0KCgkJdm9pZCBkaXNwbGF5Q291cnNlKCl7CgkJCWNvdXQgPDwgIkNvdXJzZS0gIiA8PCBjb3Vyc2UgPDwgIlxuIjsKCQl9CgoJCXZvaWQgZ2V0TWFya3MoZmxvYXQgbWFya3MsY2hhciBjb25zdCAqYm9vayxpbnQgaXNzdWVfaWQpewoJCQl0aGlzLT5tYXJrcz1tYXJrczsKCQkJZ2V0Qm9vayhib29rKTsKCQkJZ2V0SXNzdWVfaWQoaXNzdWVfaWQpOwoJCX0KCgkJdm9pZCBkaXNwbGF5TWFya3MoKXsKCQkJY291dCA8PCAiTWFya3MtICIgPDwgbWFya3MgPDwgIlxuIjsKCQkJZGlzcGxheUJvb2soKTsKCQkJZGlzcGxheUlzc3VlX2lkKCk7CgkJCWNvdXQgPDwgIlxuIjsKCQl9Cgl9OwoKCWludCBtYWluKCl7CgkJCgkJLy8gUGFyYW1ldGVyaXNlZCBjb25zdHJ1Y3RvciBvYmplY3QKCQkKCQlTdHVkZW50IHN0ZCgiVmlrYXMiLDM5LCJBQ0lTMTk4MzMxOFkiLDI4LCJEVkxTSSIsOTkuNSwiVGhlIEp1bmdsZSBCb29rIiwxMjAzKTsKCQlzdGQuZGlzcGxheVJvbGwoKTsKCQlzdGQuZGlzcGxheUNvdXJzZSgpOwoJCXN0ZC5kaXNwbGF5TWFya3MoKTsKCgkJLy8gRGVmYXVsdCBjb25zdHJ1Y3RvciBvYmplY3QKCgkJU3R1ZGVudCBzdGQxOwoJCXN0ZDEuZ2V0Um9sbCgiU2hhc2hhbmsiLDUsIkFYUFkxMjU0NDlTQSIsMjQpOwoJCXN0ZDEuZ2V0Q291cnNlKCJEVkxTSSIpOwoJCXN0ZDEuZ2V0TWFya3MoOTEuMywiSnVsaXVzIENhZXNhciIsMTUwOCk7CgkJc3RkMS5kaXNwbGF5Um9sbCgpOwoJCXN0ZDEuZGlzcGxheUNvdXJzZSgpOwoJCXN0ZDEuZGlzcGxheU1hcmtzKCk7Cgl9Cg==