Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Копирующий конструктор / 6 сообщений из 6, страница 1 из 1
06.08.2014, 23:21
    #38714596
amigo421
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
День добрый
столкнулся с таким фрагментом кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class A {
    std::atomic<double> field;
public:
    A() {}
......
}

class B {
public:
     Method(const A& a) {...}
}



Как известно, в определении класса atomic есть такая строка:

Код: plaintext
1.
  atomic(const atomic&) = delete;



т.е. копирующий конструктор запрещен.

При попытке компиляции кода выше как раз и выводиться эта ошибка:
что то типа - "обращение к удаленной функции atomic(const atomic&) "

поясните спецы пожалуйста как именно здесь происходит обращение к копирующему конструктору A в параметре метода класса B?

Заранее спасибо
...
Рейтинг: 0 / 0
06.08.2014, 23:38
    #38714607
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
amigo421,

никак.

Видимо, проблемный код остался за пределами твоего сообщения.

Приведи полностью (наиболее полно) код и вывод компилятора.
...
Рейтинг: 0 / 0
07.08.2014, 00:59
    #38714626
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
amigo421,

Компилятор сгенерировал конструктор копирования для класса А - для него и выдается ошибка.
Если вам копирование не нужно, то объявите этот конструктор явно и укажите = delete (и в наследнике тоже)
...
Рейтинг: 0 / 0
07.08.2014, 04:19
    #38714653
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
что это за муть вообще?
обвязка к CAS инструкции и функциям вроде __sync_val_compare_and_swap?
...
Рейтинг: 0 / 0
07.08.2014, 11:50
    #38714763
amigo421
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
MasterZivamigo421,

никак.

Видимо, проблемный код остался за пределами твоего сообщения.

Приведи полностью (наиболее полно) код и вывод компилятора.

спасибо , да, ты прав,
стоило повнимательнее присмотреться к коду
и стало понятно откуда проблема пришла:

class B {
list<A> a_list;
public:
Method(const A& a) {
.....
a_list.push_back(a);
....
}
}
...
Рейтинг: 0 / 0
07.08.2014, 13:33
    #38714868
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирующий конструктор
On 07.08.2014 12:50, amigo421 wrote:

> стоило повнимательнее присмотреться к коду
> и стало понятно откуда проблема пришла:

Ну да, тут вот:

> a_list.push_back(a);

и нужен конструктор копирования.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Копирующий конструктор / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]