Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Член класса, создаваемый конструктором с параметром - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отредактируйте проги чтобы было макросами, препроцесорные функцыии!С++,макросы http://www.cyberforum.ru/cpp-beginners/thread447775.html
Неразобралоса толком в них, зарание спасибо! Макросы - это препроцессорные "функции" , т.е. лексемы, созданные с помощью директивы #define, которые принимают параметры подобно функциям. После...
C++ Спиральная матрица Задание. Заполнить матрицу А(9,9), от центра по спирали: влево - вниз - вправо - вверх. http://www.cyberforum.ru/cpp-beginners/thread447762.html
C++ Сформировать квадратную матрицу А (15,15) следующего вида:
Сформировать квадратную матрицу А (15,15) следующего вида: 1 2 3 ... 15 0 1 2 ... 14 ...
C++ работа с файлами на с++
помогите сделать задачу. условие: правила записи текста в файл: в первом файле слова разделены запетой. во втором - символом ';'. в конце текстов - точка. назначение подпрограмы : ...
C++ Матиматичеський пример http://www.cyberforum.ru/cpp-beginners/thread447731.html
Надо посчетать фото задания (ниже). Добавлено через 48 секунд a=16.3 Прикрепляйте картинки к сообщениям!
C++ сравнение целых чисел всем привет)))может быть вопрос слишком простым покажется для ВАС!!! Допусим мы имеем следующий код: 1)Вариант 1 int a=11; if(a>=10) printf("true"); else printf("false"); 2)Вариант 2 подробнее

Показать сообщение отдельно
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
17.02.2012, 19:35
Цитата Сообщение от Bers Посмотреть сообщение
Пока конструктор класса не отработал, нельзя полагаться на валидность значений данных-членов экземпляра этого класса.
ну а как ты положишься на них в этом конкретном случае. B закрыт. вызван может быть только изнутри А. пока А не создан до конца изнутри А ничего вызвано не будет,в этом конкретном примере. снаружи вызывать нечего.
Т.е. даже если в этом случае мы передали B указатель на начало А а потом все обвалилось и А не создался - то и обратится к "несозданным" членам просто некому.
мне кажется что в этом конкретном случае когда B закрыт. опасности нет.

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A
{
 public:
     int val;
  class B
  {
  public:
      int z;
      int* p;
      B(A *param):z(param->val),p(param->pz){} //вот опасно pz == 0xcccccccc
  
  };
  A ():val(555),b(this),pz(new int [100]){}
  B b;
  int* pz;
~A(){delete []pz;}
};
память в куче еще не выделилась, т.е. pz еще не инициализирован, но он уже ушел в B.

Но мы разбирали совсем другой пример
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru