C++ | Static Keyword | Question 1
Predict the output of following C++ program.
#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(); } |
(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
Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.