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

Тема в разделе "Общие вопросы по С и С++", создана пользователем 123er4, 10 июн 2010.

  1. 123er4

    123er4 Гость

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

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

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

    3) Для чего применяется предварительное объявление (forward declaration) классов?
     
  2. Sekt

    Sekt Гость

    3) Для чего применяется предварительное объявление (forward declaration) классов?
    Для исп одним класса другого.Например для Proxi-классов.
     
  3. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    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;
    }
     
  4. 123er4

    123er4 Гость

    всем спасибо, тему можно закрыть.
     
Загрузка...

Поделиться этой страницей