Problem Statement - OOPs Concept Identification and Writing Object Declaration Statements
Observe the following C++ code and answer the questions (i) and (ii).
Note: Assume all necessary files are included.
class TEST
{
long TCode;
char TTitle[20];
float Score;
public:
TEST() //Member Function 1
{
TCode=100;strcpy(TTitle,”FIRST Test”);Score=0;
}
TEST(TEST &T) //Member Function 2
{
TCode=E.TCode+1;
strcpy(TTitle,T.TTitle);
Score=T.Score;
}
};
void main()
{
___________________ //Statement 1
___________________ //Statement 2
}
(i) Which Object Oriented Programming feature is illustrated by the Member Function 1 and Member Function 2 together in the class TEST?
(ii) Write Statement 1 and Statement 2 to execute Member Function 1 and Member Function 2 respectively.
Solution
TC++ #5756
(i) Answers, Polymorphism, Constructor overloading or Function Overloading are all treated as correct
(ii)
TEST T1; //Statement 1
TEST T2(T1); //Statement 2
OR
TEST T2=T1; //Statement 2
Notes
(i) Member Function 1 and Member Function 2 are actually depicting a copy constructor, one may write copy constructor, but since the Basic OOPS concept are understood a Polymorphism, Data Hiding, Abstraction, Encapsulation, Modularity etc. Most appropriate answer is Polymorphism or Function Overloading.
(ii) This question has an error as this line TCode=E.TCode+1; should be TCode=T.TCode+1; So identifying error can also be treated as correct answer for statement 2.
Statement 1 will be declaration of some object of TEST and Statement 2 will be creating another object using one of the two syntax of copy constructor which are by way of function call style or assignment style.
TEST T2(T1); //Function Call Style for copy constructor
OR
TEST T2=T1; //Assignment Style call copy constructor