Теория по С ++.

  • Автор темы Автор темы 123er4
  • Дата начала Дата начала
1

123er4

Помогите плз :please: Вот вопросы:

1) Как инициализировать переменную, являющуюся приватным статическим членом класса?

2) Если при создании переменной программист ее явно не инициализировал, то, в некоторых случаях, компилятор сам даст ей некое, заранее известное начальное значение, а в некоторых случаях начальное значение будет непредсказуемо. От чего это зависит?

3) Для чего применяется предварительное объявление (forward declaration) классов?
 
3) Для чего применяется предварительное объявление (forward declaration) классов?
Для исп одним класса другого.Например для Proxi-классов.
 
1)
C++:
class A
{
static int nStatic;
}
... in cpp:
int A::nStatic = 0;

2) Я стандарт не читал :( но думается что она всегда неопределена. Другое дело что отдельные компиляторы по спец свитчам могут, наверное, инициализировать. Тот же VS в отладочном режиме заполняет память известным значением.

3) Случаев много, чаще всего либо взаимное использование:
C++:
class CGroup;
class CStudent
{
CGroup* pGroup;
}

class CGroup
{
CStudent* pList;
}
либо сокрытие реализации:
C++:
class CSuperClassImpl;
class CSuperClass
{
// interface methods
protected:
CSuperClassImpl* pImpl; 
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!