C++ | Static Keyword | Question 1

Predict the output of following C++ program.

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
using namespace std;
  
class Test
{
    static int x;
public:
    Test() { x++; }
    static int getX() {return x;}
};
  
int Test::x = 0;
  
int main()
{
    cout << Test::getX() << " ";
    Test t[5];
    cout << Test::getX();
}

chevron_right


(A) 0 0
(B) 5 5
(C) 0 5
(D) Compiler Error


Answer: (C)

Explanation: Static functions can be called without any object. So the call “Test::getX()” is fine.

Since x is initialized as 0, the first call to getX() returns 0. Note the statement x++ in constructor. When an array of 5 objects is created, the constructor is called 5 times. So x is incremented to 5 before the next call to getX().

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