| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблема с указателями |
| Автор: carol 2.2.2007, 18:41 | ||
Есть 2 класс а А и B почему вылетает?
|
| Автор: Earnest 2.2.2007, 18:49 | ||
В чем смысл этого кода? Чему присваивается новый объект?
|
| Автор: carol 2.2.2007, 18:58 |
| в классе B ( методе func)надо вызвать метод SomeFunc(); ну я и делаю в классе B указатеь типа A , и через этот указатель вызываю метод SomeFunc(); Но прога у меня вылетает |
| Автор: Earnest 2.2.2007, 19:18 | ||||
| Еще раз: в конструктор B передается указатель на объект A, который присваивается члену pt. Он инициализирован? Далее, затем этому указателю (параметру функции! переданному по значению!) присваивается новая выделенная память... и пропадает бесследно... Еще далее. Код
видимо надо читать как
Если здесь вылетает, то причина скорее всего в неинициализированном объекте pt. Дикий конструктор наводит на мысль, что ты решил, что выделенный объект попадет в pt... Это не так... |
| Автор: sergejzr 3.2.2007, 12:08 |
| Модератор: Название темы должно отражать ее суть! Правила форума: http://forum.vingrad.ruhttp://forum.vingrad.ru/act-SR/f-27.html |
| Автор: carol 3.2.2007, 16:59 | ||
а если так .
|
| Автор: carol 5.2.2007, 13:34 | ||
|
| Автор: Anikmar 5.2.2007, 15:14 | ||||
| Неправильно. Изначально создается объект B
Теперь смотрим как создался объект А: Он создался с конструктором по умолчанию (по идее ругаться должен - я не нашел такого конструктора) Затем вызываем метод pt_A->methodA() И что в нем видим?
А в каком месте инициализируется pt_b? |
| Автор: carol 5.2.2007, 16:06 | ||||
почему нельза переменной класса А присвоить значение переменной класса B (через указатель на класс В)? у меня вить есть указатель типа В в классе А. P.S при чем тут
|
| Автор: Anikmar 5.2.2007, 16:15 |
| На момент выполнения этой инструкции: int x = pt_b->member Чему равен указатель pt_b? |
| Автор: Fazil6 5.2.2007, 20:06 | ||
указатель есть, а объекта, на который он указывает нет |
| Автор: zkv 6.2.2007, 00:22 |
| carol, во первых я вижу по крайней мере три ошибки, из за которых код не откомпилируется; во вторых, объясните, что вы хотите получить, а то что то не очень понятно; в третьих, надо показывать не только как вы определили классы, но и как их используете; в четвертых, существует режим пошагового выполнения программы, можно легко проследить, куда и что у вас присваивается. |