C++ Programming - Objects and Classes - Discussion

Discussion Forum : Objects and Classes - Programs (Q.No. 2)
2.
Which of the following statement is correct about the program given below?
#include<iostream.h> 
class IndiaBix
{
    static int x; 
    public:
    static void SetData(int xx)
    {
        x = xx; 
    }
    void Display() 
    {
        cout<< x ;
    }
};
int IndiaBix::x = 0; 
int main()
{
    IndiaBix::SetData(33);
    IndiaBix::Display();
    return 0; 
}
The program will print the output 0.
The program will print the output 33.
The program will print the output Garbage.
The program will report compile time error.
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
19 comments Page 2 of 2.

Kowsik said:   1 decade ago
Replace int main() part by following Code.

int main()
{
IndiaBix obj;
obj.SetData(33);
obj.Display();
return 0;
}

Output : 33

Madhav said:   1 decade ago
Because display is not a static function, it cannot be accessed by class name.

Gangadharreddy said:   1 decade ago
Statics members are accessed by static functions.

Venkat said:   1 decade ago
The class Indiabix don't have an object for call a member function dispaly().

Dhaval said:   1 decade ago
Non static method can't access static member!

Deepak Kumar said:   1 decade ago
Because Display() is non-static method and non-static methods are always called using object.

eg :-

IndiaBix obj;
obj.Display();

Correct way to call.

Pooja said:   1 decade ago
No. Only static functions can access static members.

Gaurav said:   1 decade ago
Because display is called without any object.

Nikita said:   1 decade ago
Why is it compile time error ?


Post your comments here:

Your comments will be displayed after verification.