Interviewer And Interviewee Guide

Professional C++ Static Data Interview Questions & Answers:

8. Explain the uses of static class data?

1. To provide access control mechanism to some shared resource used by all the objects of a class
2. To keep track of no of objects in existence of a particular class

Following example illustrates first case, to make use of static data member for access control:

#include <iostream>
using namespace std;
class MyClass
{
static int resource;
public:
int get_resource()
{
if (resource)
return 0;
else
{
resource = 1;
return 1;
}
}
void free_resource()
{
resource =0;
}
};
int MyClass::resource;
int main()
{
MyClass ob1, ob2;
if(ob1.get_resource())
cout <<”Resources with ob1”;
if(!ob2.get_resource())
cout <<”Resources denied to ob2”;
ob1.free_resource();
return 0;
}

Thus, the static member variable resource makes sure at a time only one object can access it.

Now, consider the second use: to keep track of no of objects:

#include <iostream>
using namespace std;
class MyClass
{
public:
static int cnt;
MyClass()
{
cnt++;
}
~MyClass()
{
cnt--;
}
};

void func()
{
MyClass temp;
cout << “No of Objects : “<< MyClass::cnt<<”n”;
}
int MyClass::cnt;

int main()
{
cout <<”Entered main()n”:
MyClass ob1;
cout << “No of Objects : “<< MyClass::cnt <<”n”;

MyClass ob2;
cout << “No of Objects : “<< MyClass::cnt<<”n”;

func();
cout << “No of Objects : “<< MyClass::cnt<<”n”;

return 0;
}

Output would be:
Entered main()
No of Objects: 1
No of Objects: 2
No of Objects: 3
No of Objects: 2
Thus, only one copy of static member variable cnt is maintained for all the objects created and its value is incremented or decremented whenever and object is created or destroyed.

9. Explain what are volatile variables?

A volatile variable is a variable which is modified asynchronously by the threads that are concurrently running in a java application. A volatile variable does not allow having a copy of variable that is local. It is a different value from the value which is currently available in main memory. A volatile variable mandatorily have its data synchronized for all the threads. So that, whenever the value of the volatile variable is updated by any thread, all other threads can access the same value immediately. Higher access and update overhead are likely to the volatile variables on contrast to plain variables, as all threads have their own set of data for efficiency considerations.

10. Explain dynamic type checking?

Dynamic type checking performs the type checking operation at the time of the program execution. To perform this operation, the arguments, expressions, variables must be given a data type.

Copyright 2007-2024 by Interview Questions Answers .ORG All Rights Reserved.
https://InterviewQuestionsAnswers.ORG.