Conversion Operators(C++ Programming ) Questions and Answers

Question 1.

Pick out the correct syntax of operator conversion.


  1.    operator float()const
  2.    operator float()const
  3.    operator const
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> operator float()const

None.



Question 2.

How types are there in user defined conversion?


  1.    1
  2.    2
  3.    3
  4.    4
Explanation:-
Answer: Option B. -> 2

There are two types of user-defined conversions.They are conversion by constructor, 

Conversion functions.



Question 3.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
int main()
4.
{
5.
double a = 21.09399;
6.
float b = 10.20;
7.
int c ;
8.
c = (int) a;
9.
cout
  1.    2110
  2.    1210
  3.    21
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> 2110

In this program, we casted the data type to integer.
Output:
$ g++ con5.cpp
$ a.out
2110



Question 4.


What is the output of this program?


1.
#include
2.
#include
3.
using namespace std;
4.
class test
5.
{
6.
public:
7.
operator string ()
8.
{
9.
return "Converted";
10.
}
11.
};
12.
int main()
13.
{
14.
test t;
15.
string s = t;
16.
cout
  1.    converted
  2.    error
  3.    run time error
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> converted

In this program, We casted the string to the object of the class.
Output:
$ g++ con4.cppp
$ a.out
converted



Question 5.


What is the output of this program?


1.
#include
2.
#include
3.
using namespace std;
4.
class Complex
5.
{
6.
private:
7.
double real;
8.
double imag;
9.
public:
10.
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i)
11.
{}
12.
double mag()
13.
{
14.
return getMag();
15.
}
16.
operator double ()
17.
{
18.
return getMag();
19.
}
20.
private:
21.
double getMag()
22.
{
23.
return sqrt(real * real + imag * imag);
24.
}
25.
};
26.
int main()
27.
{
28.
Complex com(3.0, 4.0);
29.
cout
  1.    5 5
  2.    4 5
  3.    6 6
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> 5 5

In this program, we are calculating the magnitude value by two ways.
Output:
$ g++ con3.cpp
$ a.out
55



Question 6.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
class sample
4.
{
5.
public:
6.
sample(int i) : m_i(i) { }
7.
public:
8.
int operator()(int i = 0) const
9.
{
10.
return m_i + i;
11.
}
12.
operator int () const
13.
{
14.
return m_i;
15.
}
16.
private:
17.
int m_i;
18.
friend int g(const sample&);
19.
};
20.
int f(char c)
21.
{
22.
return c;
23.
}
24.
int main()
25.
{
26.
sample f(2);
27.
cout
  1.    3
  2.    4
  3.    5
  4.    None of the mentioned
Explanation:-
Answer: Option B. -> 4

In this program, we are adding its value with it itself, So only we got the output as 4.
Output:
$ g++ con1.cpp
$ a.out
4



Question 7.

How many parameters does a conversion operator may take?


  1.    0
  2.    1
  3.    2
  4.    as many as possible
Explanation:-
Answer: Option A. -> 0

None.



Question 8.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
class sample1
4.
{
5.
float i, j;
6.
};
7.
class sample2
8.
{
9.
int x, y;
10.
public:
11.
sample2 (int a, int b)
12.
{
13.
x = a;
14.
y = b;
15.
}
16.
int result()
17.
{
18.
return x + y;
19.
}
20.
};
21.
int main ()
22.
{
23.
sample1 d;
24.
sample2 * padd;
25.
padd = (sample2*) &d;
26.
cout 27.
return 0;
28.
}
  1.    20
  2.    runtime error
  3.    random number
  4.    c or b
Explanation:-
Answer: Option D. -> c or b

As it assigns to a reference to an object of another incompatible type using explicit type-casting.
Output:
$ g++ con.cpp
$ a.out
14032334



Question 9.

Why we use the "dynamic_cast" type conversion?


  1.    result of the type conversion is a valid
  2.    result of the type conversion is a valid
  3.    result of the type conversion is a invalid
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> result of the type conversion is a valid

It is used to check that operators and operands are compatible after conversion.


Question 10.

What is the return type of the conversion operator?


  1.    void
  2.    int
  3.    float
  4.    no return type
Explanation:-
Answer: Option D. -> no return type

Conversion operator doesn't have any return type not even void.