В C++ можно использовать элемент данных класса без определения объекта этого класса, указав этот элемент данных в общедоступном разделе как переменную static
, как в примере кода ниже. Вопрос в том, почему/когда я хочу это сделать? и как я могу это сделать?Почему/когда я хотел бы использовать элемент данных класса без определения объекта класса?
class ttime{
public:
ttime(int h=0, int m=0, int s=0):hour(h), minute(m), second(s){} //constructor with default intialization
int& warning(){return hour;}
void display()const{cout<<hour<<"\t";}
static int hello;
~ttime(){}
private:
int hour;
int minute;
int second;
};
main()
{
ttime:: hello=11310; //Is this the way to use hello without creating an object of the class?
cout << ttime:: hello;
ttime hi(9);
hi.display();
hi.warning()++;//the user is able to modify your class's private data, which is really bad! You should not be doing this!
hi.display();
}
Да, 'static' переменные члены возможны, и они доступны без экземпляра объекта. Почему вы хотели бы, чтобы они были довольно широкой темой. –