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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Siarhey
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 19
#1

Ошибка с деструктором класса - C++

07.04.2016, 09:22. Просмотров 180. Ответов 5
Метки нет (Все метки)

Всем привет, здесь код .h файла с описанным классом. В классе 2 конструктора: 1-ый без аргументов 2-ой инициализации, в каждом из которых я выделяю динамически память для поля last_name и инициализирую его. Программа работает правильно, но после выполнения вызывается "точка останова" что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
class account
{
public:
    int MAX = 50;
    account()
    {
        last_name = new char[MAX];
        last_name = "Skuratovich";
    }
    
    account(char *_last_name)
    {
        
        last_name = new char[MAX];
        strcpy_s(last_name, strlen(_last_name)+1, _last_name);
    }
 
 
    ~account() { delete[] last_name; } 
 
 
private:
    char *last_name;
};
0
Миниатюры
Ошибка с деструктором класса   Ошибка с деструктором класса  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2016, 09:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка с деструктором класса (C++):

Ошибка с деструктором для класса матриц - C++
Доброй ночи! Есть проблемка: имеется класс для представления матрицы, есть метод умножения матриц, суть в том что я хочу умножить матрицу...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

Создание класса с конструкторами и деструктором - C++
Доброго времени суток, камрады! Прошу помощи в задании: Требуется создать класс студент, включающий surname, semester, 4 marks,...

Создание класса с конструкторами и деструктором - C++
Доброго времени суток! Прошу помощи в задании: Класс, хранящий две строки символов s1 и s2. Создать метод, производящий посимвольное...

Решить проблему с деструктором класса Student - C++
Добрый день! Хотел написать простенький класс, но возникла проблема с деструктором. Подскажите, пожалуйста, в чём ошибка. Если деструктор...

Приведите пример класса с конструкторами и деструктором - C++
Здравствуйте ! Приведите пример Конструкторы и Деструкторы в С++ ( Напишите по понятнее код пожалуйста ) Я пищу курсовую и мне нужно...

5
nmcf
5686 / 4997 / 1704
Регистрация: 14.04.2014
Сообщений: 20,399
07.04.2016, 09:35 #2
10-я строка не верна. Используй strcpy().
1
Siarhey
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 19
07.04.2016, 10:53  [ТС] #3
Точно, спасибо)

Добавлено через 1 час 8 минут
nmcf, а вот я ещё пытаюсь написать конструктор копирования и возникает та же ошибка(
C++
1
2
3
4
    account(account &copy)
    {
        last_name = _strdup(copy.last_name);
    }
0
nmcf
5686 / 4997 / 1704
Регистрация: 14.04.2014
Сообщений: 20,399
07.04.2016, 12:11 #4
Не используй эту функцию, она через malloc память выделяет. Делай как во втором конструкторе.
0
Siarhey
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 19
08.04.2016, 10:06  [ТС] #5
nmcf,
C++
1
2
3
4
5
6
account(account& copy)
    {
        last_name = new char[MAX];
        strcpy_s(last_name, strlen(copy.last_name) + 1, copy.last_name);
        cout << "я сработалъ!" << endl;
    }
я заметил, что у меня компилятор как-то игнорирует явно записанный конструктор копирования и использует тот, что по умолчанию
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
08.04.2016, 10:32 #6
Цитата Сообщение от Siarhey Посмотреть сообщение
как-то игнорирует
В чём это выражается?
Все конструкторы последовательно корректно вызываются
C++
1
2
3
 account a1;
 account a2("test");
 account a3(a2);
0
08.04.2016, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2016, 10:32
Привет! Вот еще темы с ответами:

Помогите найти ошибку с деструктором при создание класса Матрица - C++
Возникла проблема с деструктором, во время выполнения. #include&lt;iomanip&gt; #include&lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;ctime&gt; ...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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