|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
||||||
С++ течет при наследовании25.01.2013, 18:27. Показов 4310. Ответов 46
Метки нет (Все метки)
Если был создан класс где его поля размещались в стеке (Foo)
и унаследован классом (Foo1) который создается динамически. Как управиться с памятью? Поможет ли вызов деструктора в деструкторе решить эту проблемму или как делаете вы?
0
|
||||||
| 25.01.2013, 18:27 | |
|
Ответы с готовыми решениями:
46
Использование шаблонов при наследовании, ошибка при компиляции Ошибка при наследовании Ошибка при наследовании |
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|||
| 25.01.2013, 23:55 [ТС] | |||
|
gray_fox, Понял, запихнул по ошибке в конструктор, то что должно быть в деструкторе.
Но инициализация есть и вектор(Border pointBorder ?~OhMyGodSoLong~, Есть какие нибудь ошибки которые можно на лету увидеть?
0
|
|||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||
| 26.01.2013, 00:06 | ||
|
1
|
||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|||||||||||
| 26.01.2013, 00:32 [ТС] | |||||||||||
|
gray_fox, представление поменялось. Я сильно усложнил многое. подскажи ещё почему при попадании на
Уже не вылетает ! Но показывает утечки Добавлено через 13 минут Зановес ! : const int COUNT_N = 9; // размер Cup * cups[COUNT_N]; // объявление, член класса C_map.h Cup * cups = new Cup[COUNT_N]; // инициализация в констукторе C_map.h [УТЕЧКА !] delete[] cups; // удаление в деструкторе C_map.h [УТЕЧКА] Visual Leak Detector detected 12 memory leaks (2768 bytes). если заменяю
Visual Leak Detector detected 4 memory leaks (460 bytes). Нашел ещё утечку в удалении текстур и спрайта. Есть ли ошибка в cups ?
0
|
|||||||||||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||
| 26.01.2013, 00:33 | ||
|
Добавлено через 20 секунд Если cups удаляешь.
1
|
||
|
Неэпический
|
||
| 26.01.2013, 00:38 | ||
|
1
|
||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||
| 26.01.2013, 00:40 | ||
|
Добавлено через 1 минуту
1
|
||
|
Неэпический
|
||||||
| 26.01.2013, 00:43 | ||||||
Добавлено через 1 минуту
1
|
||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|
| 26.01.2013, 00:52 [ТС] | |
|
Croessmah, gray_fox, Я могу инициализацию член именно поле класса?
Вроде бы поля только статические можно инициализировать, а в конструкторе если только через this...
0
|
|
|
Неэпический
|
||||||||||||
| 26.01.2013, 00:53 | ||||||||||||
1
|
||||||||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|
| 26.01.2013, 00:58 [ТС] | |
|
Croessmah, Мне стыдно только что new[] в msdn прочитал. Напутал в синтаксисе и думал высокие материи...
0
|
|
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||||||
| 26.01.2013, 01:01 | ||||||
|
vbloodv, предлагаю, если это возможно, избавиться от метода Create и инициализировать всё в конструкторе. Примерно:
1
|
||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|||||||
| 26.01.2013, 01:14 [ТС] | |||||||
|
:hge(hge) - непонятен Добавлено через 4 минуты
0
|
|||||||
|
What a waste!
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
|
||||||
| 26.01.2013, 01:15 | ||||||
|
vbloodv, список инициализации конструктора. В данном случае можно заменить на
1
|
||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
||||||
| 26.01.2013, 02:05 [ТС] | ||||||
|
Не все просто у меня получается:
![]() Вот такой код (его часть):
delete[] cups; - при попадании в деструктор вызывает fail, возможно что delete[] вызывается сам или cups удаляется при выходе из области видимости функции create ?
0
|
||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
||||||||||||||||
| 26.01.2013, 02:14 [ТС] | ||||||||||||||||
|
Croessmah, Конечно, извиняюсь...
map.cpp Кликните здесь для просмотра всего текста
map.h Кликните здесь для просмотра всего текста
main() Кликните здесь для просмотра всего текста
Если есть какие нарекания все учту !
0
|
||||||||||||||||
|
Неэпический
|
|||||||||||
| 26.01.2013, 02:30 | |||||||||||
|
добавьте функцию в main.cpp
1
|
|||||||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|
| 26.01.2013, 02:39 [ТС] | |
|
Croessmah, Да, выбило ошибку программа разламалась в деструкторе !
В деструкторе mytesttmp на выходе из функции (((
0
|
|
|
Неэпический
|
||||||
| 26.01.2013, 02:44 | ||||||
|
Содержимое функций-членов
А еще лучше из функции Create уберите вызовы этих функций и посмотрите происходит ли ошибка при выходе из foo
0
|
||||||
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
||||||
| 26.01.2013, 02:48 [ТС] | ||||||
|
Croessmah,
Кликните здесь для просмотра всего текста
Могу выслать проект на имаил
0
|
||||||
| 26.01.2013, 02:48 | |
|
Помогаю со студенческими работами здесь
40
Сравнение при наследовании Конструкторы при наследовании Деструктор при наследовании Ошибка при наследовании Конструкторы при наследовании Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|