Home »
C++ programs »
C++ class and object programs
Create an object of a class inside another class declaration in C++
Here, we are going to learn by a program how to create an object of a class inside another class declaration in C++ programming language?
Submitted by IncludeHelp, on September 15, 2018 [Last updated : March 01, 2023]
Creating an object of a class inside another class declaration
As we know that a class contains data members and member function, and an object can also be a data member for another class.
Logic to create an object of a class inside another class declaration
Here, in the given program, we are doing the same. We have a class named Marks that contains two data members rno - to store roll number and perc - to store the percentage of the student. We have another class named Students that contains two members name - to store the name of the student and objM - which is an object of Marks class.
In Students class there are two member functions:
- readStudent() - To read the name of the student, and Here, we called readMarks() member function of Marks class by using objM - it will read roll number and percentage.
- printStudent() - To print the name of the student, and Here, we called printMarks() member function of Marks class by using objM - it will print roll number and percentage.
C++ program to create an object of a class inside another class declaration
#include <iostream>
#include <string.h>
using namespace std;
class Marks {
private:
int rno;
float perc;
public:
//constructor
Marks()
{
rno = 0;
perc = 0.0f;
}
//input roll numbers and percentage
void readMarks(void)
{
cout << "Enter roll number: ";
cin >> rno;
cout << "Enter percentage: ";
cin >> perc;
}
//print roll number and percentage
void printMarks(void)
{
cout << "Roll No.: " << rno << endl;
cout << "Percentage: " << perc << "%" << endl;
}
};
class Student {
private:
//object to Marks class
Marks objM;
char name[30];
public:
//input student details
void readStudent(void)
{
//Input name
cout << "Enter name: ";
cin.getline(name, 30);
//input Marks
objM.readMarks();
}
//print student details
void printStudent(void)
{
//print name
cout << "Name: " << name << endl;
//print marks
objM.printMarks();
}
};
//main code
int main()
{
//create object to student class
Student std;
std.readStudent();
std.printStudent();
return 0;
}
Output
Enter name: Amit Shukla
Enter roll number: 101
Enter percentage: 84.02
Name: Amit Shukla
Roll No.: 101
Percentage: 84.02%