Самостоятельно изучаю qt, не кидайтесь тапками, пожалуйста. У меня есть класс клеток поля, в котором лежит QTableWidgetItem *item;
#ifndef CELL_H
#define CELL_H
#include <QTableWidget>
class cell : public QTableWidget
{
Q_OBJECT
public:
explicit cell(QTableWidget *parent = 0);
void set_state(int state);
int get_state();
void set_fate(int fate);
int get_fate();
void preset_neighbours();
QTableWidgetItem *item;
protected:
int state=0,fate=0,neighbours=0;
signals:
public slots:
};
И есть класc главного окна приложения, в котором находится QTableWidget. Как сделать так, чтобы я смог сделать следующую операцию
ui->tablewidget->setitem(x,y,cel.item);
Где cel - объект класса cell. На текущий момент программа выдает ошибку:
D:\soft\qt570\Tools\mingw530_32\i686-w64-mingw32\include\c++\ext\new_allocator.h:120: error: use of deleted function 'cell::cell(const cell&)' { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^
Ошибку выдает не ваша программа, а компилятор! Он сообщает вам что вы пытаетесь, дословно: использовать удаленную функцию cell::cell(const cell&). В переводе на человеческий это означает, что где-то происходит вызов конструктора копирования (cell(const cell&)), который в классе cell не определен (удален на языке компилятора).
Более интересно почему компилятор нзывает конструктор копирования удаленным. Дело в том, что у вас здесь сработали правила генерации и удаления конструкторов и операторов по умолчанию. Эти правила не простые и действительно легко запутаться, они уже тут обсуждались.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей