C++ | Constructors | Question 15

filter_none

edit
close

play_arrow

link
brightness_4
code

#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;
}

chevron_right


(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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Improved By : RobertCorrington

Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.