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;
}
Discussion:
19 comments Page 1 of 2.
Nikita said:
1 decade ago
Why is it compile time error ?
Gaurav said:
1 decade ago
Because display is called without any object.
Pooja said:
1 decade ago
No. Only static functions can access static members.
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.
eg :-
IndiaBix obj;
obj.Display();
Correct way to call.
Dhaval said:
1 decade ago
Non static method can't access static member!
Venkat said:
1 decade ago
The class Indiabix don't have an object for call a member function dispaly().
Gangadharreddy said:
1 decade ago
Statics members are accessed by static functions.
Madhav said:
1 decade ago
Because display is not a static function, it cannot be accessed by class name.
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
int main()
{
IndiaBix obj;
obj.SetData(33);
obj.Display();
return 0;
}
Output : 33
Dixit said:
1 decade ago
Can not call display() function without object! Because display() is not declared static.
(1)
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers