Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 09.03.2022
Сообщений: 75

Ошибка при работе с классом

28.04.2022, 16:47. Показов 344. Ответов 4

Студворк — интернет-сервис помощи студентам
Исключение нарушение прав доступа.

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
27
28
29
30
31
32
33
34
35
class animals
{
    char* name;
    char* cls;
    int weight;
 
public:
    animals()
    {
        
        cout << "\nВызвался конструктор без параметров - "<<this<<endl;
    };
    ~animals()
    {
        cout << "\nВызвался деструктор - " << this << endl;
    };
 
 
 
    void Print()
    {
        cout << "\nИмя - " << this->name << "\nКласс - " << this->cls << "\nСредний вес - " << this->weight;
    };
};
 
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    animals a;
    a.Print();
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2022, 16:47
Ответы с готовыми решениями:

Ошибка при работе с классом
Если я запускаю программу в 3 файла(main.cpp, auto.h, auto.cpp) выдает ошибку id returned 1 exit status, и черным идет undefined reference...

Ошибка при работе с классом matrix
Ошибка такова: класс matrix не содержит подходящий конструктор копий. В коде напротив строк с ошибками оставил отметки. Читать я умею и...

Ошибка при работе с абстрактным классом pair
Всем доброго времени суток, стоит задача создать абстрактный класс pair и создать от него производный класс complex, определив при этом...

4
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
28.04.2022, 16:49
Цитата Сообщение от Arsenicum Посмотреть сообщение
char* name;
    char* cls;
    int weight;
Члены класса нигде не инициализируются, поэтому
Цитата Сообщение от Arsenicum Посмотреть сообщение
void Print()
    {
        cout << "\nИмя - " << this->name << "\nКласс - " << this->cls << "\nСредний вес - " << this->weight;
    };
в момент вызова метода метода Print в них мусор.
А когда в указателе мусор -- высока вероятность вызвать "Исключение нарушение прав доступа".
2
1 / 1 / 0
Регистрация: 09.03.2022
Сообщений: 75
28.04.2022, 17:33  [ТС]
lemegeton, как мне инициализировать name и cls, мог бы конечно просто ввести, но хочу чтобы когда не было данных выводило это, а не получается, ошибка
динамической памяти нельзя поставить конст значение
C++
1
2
3
4
5
6
7
animals()
    {
        this->name = "unknown";
        this->cls = "unknown";
        this->weight = 0;
        cout << "\nВызвался конструктор без параметров - "<<this<<endl;
    };
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
28.04.2022, 17:47
Цитата Сообщение от Arsenicum Посмотреть сообщение
this->name = "unknown";
        this->cls = "unknown";
Не так. Вот так:
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
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <string>
#include <windows.h>
class animals
{
    char* name;
    char* cls;
    int weight;
public:
    animals()
    {
        name = new char[50];
        strcpy(name, "Nguyen Duy Cuong");
        cls = new char[50];
        strcpy(cls, "12A10");
        weight = 68;
        std::cout << "\nВызвался конструктор без параметров - " << this << std::endl;
    };
    ~animals()
    {
        std::cout << "\nВызвался деструктор - " << this << std::endl;
        delete[] name;
        delete[] cls;
    };
    void Print()
    {
        std::cout << "\nИмя - " << this->name << "\nКласс - " << this->cls << "\nСредний вес - " << this->weight;
    };
};
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    animals a;
    a.Print();
    return 0;
}
2
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
28.04.2022, 17:48
Используй std::string.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2022, 17:48
Помогаю со студенческими работами здесь

Не вызывается деструктор при работе с классом
Здравствуйте! Не подскажете почему при работе с классом Деструктор не вызывается???? Вот код: #define _CRTDBG_MAP_ALLOC ...

Ошибка в работе с классом "очередь"
Скажите пожалуйста, почему указатель на хвост очереди после инициализации всегда направлен в NULL, а на голову в адрес 158? (через...

Ошибка при компиляции. Где ошибка? (Работа с классом)
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку...

Access volation при работе с классом
Есть программа которая складывается с нескольких файлов: SDIMAIN.cpp, Marshut.h, Marshut.cpp. В файле Marshut.h я описал класс: Marshut.h...

Ошибка доступа по адресу при работе с классом
Получаю ошибку при вызове Controller.Create(StrToFloat(Down.Text), StrToFloat(Top.Text), StrToFloat(Edit1.Text), Chart1); Ошибка:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru