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

При инициализации массива в отладке не попадаю в обработчик, поясните почему? - C++

Восстановить пароль Регистрация
 
 
mxs89
10 / 10 / 4
Регистрация: 13.04.2015
Сообщений: 140
Завершенные тесты: 1
04.08.2016, 01:43     При инициализации массива в отладке не попадаю в обработчик, поясните почему? #1
имеется два класса
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
struct Integer
{
    explicit Integer(int const &value)
        : value_(value)
        {
        }
    Integer()
        :value_(0)
        {
        }
    Integer &operator=(int const &value)
        {
        value_ = value;
        return *this;
        }
private:
    int value_;
};
 
template<class _Ty>
    struct Array
{
    explicit Array(size_t const &size, _Ty const &value)
        : size_(size), elements_(new _Ty[size])
        {
        for (size_t i = 0; i < size; i++)
            *(elements_ + i) = value;
        }
    ~Array()
        {
        if (elements_)
            delete[]elements_;
        elements_ = 0;
        size_ = 0;
        }
private:
    _Ty *elements_;
    size_t size_;
};
при инициализации массива происходит копирование значения по средствам оператора =, в отладке не попадаю в обработчик, поясните почему?

C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    Integer i(15);
 
    auto value = std::make_unique<Array<Integer>>(10, i);
 
    i = 16;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2016, 01:43     При инициализации массива в отладке не попадаю в обработчик, поясните почему?
Посмотрите здесь:

Почему при инициализации данных программа работает быстрей? C++
Почему прога может зависать при инициализации массива C++
C++ Ошибка при инициализации массива
C++ Заполнение массива при инициализации
При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Babysitter
 Аватар для Babysitter
78 / 103 / 34
Регистрация: 23.11.2015
Сообщений: 315
Завершенные тесты: 1
05.08.2016, 09:41     При инициализации массива в отладке не попадаю в обработчик, поясните почему? #21
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
получается правила не генирировать оператор=, если он реализован хоть и для другого типа - нету?
чем-то напоминает вот такую штуку, да?

Добавлено через 20 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
struct A
{
};
 
struct B : public A
{
    B& operator=(const A& obj)
    {
        cout << "got here!\n";
        return *this;
    }
};
 
int main()
{
    B b1, b2;
    b2 = b1;
    return 0;
}
ничего не выводится, прикольно, да?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
05.08.2016, 10:09     При инициализации массива в отладке не попадаю в обработчик, поясните почему? #22
Babysitter, нет
Babysitter
 Аватар для Babysitter
78 / 103 / 34
Регистрация: 23.11.2015
Сообщений: 315
Завершенные тесты: 1
05.08.2016, 10:35     При инициализации массива в отладке не попадаю в обработчик, поясните почему? #23
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
нет
okay
rikimaru2013
05.08.2016, 11:03
  #24

Не по теме:

Babysitter, не расстраивайся - когда я такую же "интересную" фишку написал Интересный "баг" в коде меня тоже умники зафукали, якобы это очевидно - хотя то было нифига не очевидно.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2016, 11:08     При инициализации массива в отладке не попадаю в обработчик, поясните почему?
Еще ссылки по теме:

C++ Ошибка при инициализации массива
C++ Почему при инициализации строки, сначала создаётся пустой объект?
C++ Почему я не попадаю в специализацию шаблона?

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

Или воспользуйтесь поиском по форуму:
Babysitter
05.08.2016, 11:08     При инициализации массива в отладке не попадаю в обработчик, поясните почему?
  #25

Не по теме:

rikimaru2013, да это даже не мой блог, знакомого. ну если уж очевидно, то ладно.
теперь то может быть, но впервые такая вещь проскальзывает незаметно и найти ее непросто.

Yandex
Объявления
05.08.2016, 11:08     При инициализации массива в отладке не попадаю в обработчик, поясните почему?
Ответ Создать тему
Опции темы

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