Skip to content
Related Articles

Related Articles

C++ | Constructors | Question 15
  • Last Updated : 18 Feb, 2020




#include<iostream>
using namespace std;
   
class Test
{
public:
  Test();
};
   
Test::Test()  {
    cout << " Constructor Called. ";
}
   
void fun() {
  static Test t1;
}
   
int main() {
    cout << " Before fun() called. ";
    fun();
    fun();
    cout << " After fun() called. ";  
    return 0;
}

(A) Constructor Called. Before fun() called. After fun() called.
(B) Before fun() called. Constructor Called. Constructor Called. After fun() called.
(C) Before fun() called. Constructor Called. After fun() called.
(D) Constructor Called. Constructor Called. After fun() called.Before fun() called.


Answer: (C)

Explanation: Notice within the function fun(), the variable t1 is declared static. Thus the Test::Test constructor is called only once for the lifetime of the program.
For more information, please see Static Keyword in C++ and read the section “Static variables in a Function.”


Quiz of this Question

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :