1.Mam pewną zagwozdkę otóż, mam pewną klasę "Group", w klasie tej znajduję się publicznie zadeklarowany obiekt typu "QStringList".
2.W Klasie MainWindow posiadam obiekt typu QVector <Group>.
3.W funkcji należącej do MainWindow chcę odwołać się do składowej Group - QStringList.
I w tym momencie pojawia się błąd
D:\Qt\Qt5.8.0\5.8\msvc2015_64\include\QtCore\qvector.h:559: error: C2280: 'Group::Group(const Group &)': attempting to reference a deleted function
Rozumiem że chodzi o konstruktor kopiujący, ale nie rozumiem dlaczego kompilator próbuje cokolwiek kopiować, kiedy jedynie odwołuje się do parametrów zwracanych przez funkcję. Próbowałem przesłać obiekt za pomocą referencji i błąd pojawia się również wtedy.
//Group.h
#ifndef GROUP_H
#define GROUP_H
#include <QStringList>
#include <QVector>
#include <QApplication>
#include "employee.h"
#include <QObject>
class Group : public QObject
{
Q_OBJECT
public:
explicit Group(QObject* partent =0);
~Group();
QStringList employeesList;
QStringList* get_employees_list(){return &employeesList;}
private:
public slots:
void refreshEmployeeList();
};
#endif // GROUP_H
//MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
//QClasses
#include <QMainWindow>
#include <QListWidgetItem>
#include <QVector>
#include <QStringList>
//DIALOGS
#include "newemployee.h"
#include "newgroupdialog.h"
//MY CLASSES
#include "group.h"
#include "employee.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QVector <Employee> AllEmployeeList;
QVector <Employee> AvaliableEmployeeList;
QVector <Group> GroupsList;
void refresh_lists();
public slots:
void NewEmployeeCreated(Employee emp);
private slots:
void on_pushButton1_clicked();
void on_pushButton2_clicked();
void on_pushButton3_clicked();
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_5_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Funkcja w której występuje błąd
void MainWindow::refresh_lists()
{
for (int j = 0; j < GroupsList.size(); j++)
{
GroupsList[j].getEmployeeList(); // w tej linijce kompilator wyrzuca error
}
}
PS. Kod nie ma z grubsza sensu bo go przerobiłem dla klarowności.