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

Не срабатывает метод класс Clear(); - C++

Восстановить пароль Регистрация
 
maestro4250
10 / 10 / 1
Регистрация: 01.04.2015
Сообщений: 120
12.07.2015, 17:59     Не срабатывает метод класс Clear(); #1
День добрый форумчане, подскажите пожалуйста почему не срабатывает в обычном режиме метод класса Clear();
А если прогонять через отладку то работает ?

Кликните здесь для просмотра всего текста
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#define _CRT_SECURE_NO_WARNINGS
#define MAX_LENGTH_STRING 50
 
#include <iostream>
#include <cstdlib>
#include <string>
#include <time.h>
 
using namespace std;
 
class CardOffender
{
    string m_NumberAuto;
    string* m_Offense;
    int m_Count;
public:
    CardOffender();
    ~CardOffender();
    
    CardOffender* Add(string*, string*, int);
    void Print(CardOffender*);
    CardOffender* Clear(CardOffender*);
 
};
 
CardOffender::CardOffender()
{
    m_NumberAuto = "";
    m_Offense = nullptr;
}
 
CardOffender::~CardOffender()
{
}
 
 
CardOffender* CardOffender::Add(string* autonumber, string* fouls, int count)
{
    srand(time(NULL));
    m_Offense = new string[count];// выделил память под массив нарушений 
 
    //заполняю массив нарушений 
 
    m_NumberAuto = autonumber[0 + rand() % 10];// случайным образом беру один с 10 номеров 
    for (int i = 0; i < count; i++)
    {
        m_Offense[i] = fouls[0 + rand() % 15];// заполнение нарушений 
    }
    m_Count = count;
    return this;
}
 
void CardOffender::Print(CardOffender* object)
{
    cout << " Номер машины нарушителя : " << object->m_NumberAuto << endl;
    cout << " Список правонарушений :" << endl;
 
    for (int i = 0; i < m_Count; i++)
    {
        cout << m_Offense[i] << endl;
    }
}
 
CardOffender* CardOffender::Clear(CardOffender* object)
{
    string m_NumberAuto = "";
    string m_LineOffense = "";
 
    delete[] m_Offense;
 
    string* m_Offense = nullptr;
    int m_Count = 0;
 
    return this;
}
 
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    system("mode con cols=120 lines=40");
    srand(time(NULL));
 
    string AutoNumber[10] = { "BB0552CM", "AH9913ET", "AH0717HC", "AE5437IH", "AI1233AB", "AA3258AE", "AE5533AI", "BC0785AT", "BK1133BE", "AE0707KI" };
    string Fouls[] =
    {
        "Управление ТС, не зарегистрированным в установленном порядке",
        "Управление ТС водителем, лишенным права управления ТС",
        "Управление ТС водителем, находящимся в состоянии опьянения",
        "Превышение установленной скорости движения ТС на величину более 20, но не более 40 километров в час",
        "Превышение установленной скорости движения ТС на величину более 40, но не более 60 километров в час",
        "Превышение установленной скорости движения ТС на величину более 60 километров в час",
        "Нарушение правил проезда через железнодорожные переезды",
        "Невыполнение требования ПДД уступить дорогу ТС, пользующемуся преимущественным правом проезда перекрестков",
        "Движение по велосипедным или пешеходным дорожкам либо тротуарам в нарушение ПДД",
        "Движение во встречном направлении по дороге с односторонним движением",
        "Несоблюдение требований, предписанных дорожными знаками или разметкой проезжей части дороги",
        "Нарушение правил пользования внешними световыми приборами, звуковыми сигналами, аварийной сигнализацией или знаком аварийной остановки",
        "Нарушение правил перевозки грузов, а равно правил буксировки",
        "Невыполнение законного требования сотрудника полиции об остановке ТС",
        "Оставление водителем в нарушение ПДД места дорожно-транспортного происшествия, участником которого он являлся"
    };
 
    CardOffender object;
    int count = 4;
    CardOffender* Card;
 
 
    Card = object.Add(AutoNumber, Fouls, count);
 
    object.Print(Card);
 
    Card = object.Clear(Card);// через F11 работает, если просто запустить прогу не в отладке проходит мимо 
 
    cout << endl;
 
    Card = object.Add(AutoNumber, Fouls, count);
 
    object.Print(Card);
 
 
 
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
12.07.2015, 18:11     Не срабатывает метод класс Clear(); #2

Не по теме:

maestro4250, а смысл передавать переменную Card, если вся работа происходит с переменной object? а Card - это указатель на object и в операциях совершенно не участвует...
только код запутали...



Добавлено через 2 минуты
строки 66,67,71-72 создание локальных переменных, перекрывающих область видимости полей класса
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1868 / 1664 / 580
Регистрация: 14.05.2014
Сообщений: 4,774
Записей в блоге: 1
Завершенные тесты: 5
12.07.2015, 18:13     Не срабатывает метод класс Clear(); #3
Цитата Сообщение от maestro4250 Посмотреть сообщение
C++
1
2
delete[] m_Offense;
string* m_Offense = nullptr;
а зачем Вы объявляете еще раз указатель? Это ведь член класса.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
12.07.2015, 18:36     Не срабатывает метод класс Clear(); #4
кстати, вам тут точно стоит вспомнить правило трех.
Распространенные ошибки
maestro4250
10 / 10 / 1
Регистрация: 01.04.2015
Сообщений: 120
12.07.2015, 18:59  [ТС]     Не срабатывает метод класс Clear(); #5
Kerry_Jr, копипаст баг

Добавлено через 1 минуту
Cra3y, vua72, Спасибо ознакомлюсь.

Добавлено через 3 минуты
Про правило трех конечно слабо уловил, надо еще почитать.
Yandex
Объявления
12.07.2015, 18:59     Не срабатывает метод класс Clear();
Ответ Создать тему
Опции темы

Текущее время: 19:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru