Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Program do nauki słówek POMOC
Forum Updated to NodeBB v4.3 + New Features

Program do nauki słówek POMOC

Scheduled Pinned Locked Moved Unsolved Polish
4 Posts 2 Posters 1.6k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Dominik
    wrote on last edited by
    #1

    Piszę program do nauki słówek. Chcę wykorzystać bibliotekę STL. Na razie mam dopiero początek, no i pierwsze problemy.

    slowa.h
    
    #ifndef SLOWA_H
    #define SLOWA_H
    
    #include <QMainWindow>
    
    class slowa
    {
    public:    
        explicit slowa(QWidget *parent = 0);
        QString polskie;
        QString obce;
        slowa(QString xpolskie, QString xobce);
        ~slowa();
    
    };
    
    #endif // SLOWA_H
    
    
    mainwindow.h
    
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    #include "slowa.h"
    
    #include <QMainWindow>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H
    
    slowa.cpp
    
    #include "slowa.h"
    
    slowa::slowa(QString xpolskie, QString xobce):
         polskie(xpolskie)
        , obce(xobce)
    
    {
    }
    slowa::~slowa()
    {
    }
    
    
    mainwindow.cpp
    
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        QVector <slowa> s;
        QString pl = "polskie";
        QString en = "obce";
        s.push_back(slowa(pl,en));
        ui->setupUi(this);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    

    Mam problem z błędem

    mainwindow.obj:-1: błąd: LNK2019: unresolved external symbol "public: __cdecl slowa::slowa(class QWidget *)" (??0slowa@@QEAA@PEAVQWidget@@@Z) referenced in function "private: void __cdecl QVector<class slowa>::defaultConstruct(class slowa *,class slowa *)" (?defaultConstruct@?$QVector@Vslowa@@@@AEAAXPEAVslowa@@0@Z)
    
    1 Reply Last reply
    0
    • Chris KawaC Offline
      Chris KawaC Offline
      Chris Kawa
      Lifetime Qt Champion
      wrote on last edited by Chris Kawa
      #2

      W slowa.h masz taki konstruktor:

      explicit slowa(QWidget *parent = 0);
      

      ale nigdzie go nie implementujesz. Z tego co tu widzę to slowa nie będzie widgetem, więc ten konstruktor jest zupełnie zbędny, usuń go. Ten include #include <QMainWindow> w slowa.h też nie jest Ci potrzebny.

      Taka drobna uwaga nie związana z problemem - nie przekazuj stringów przez wartość tylko przez const referencję, jest zdecydowanie wydajniej:

      slowa(const QString& xpolskie, const QString& xobce);
      
      1 Reply Last reply
      0
      • D Offline
        D Offline
        Dominik
        wrote on last edited by
        #3

        Zmieniłem to co mówiłeś w slowa.h teraz mam taki błąd

        C:\Qt\5.9\msvc2013_64\include\QtCore\qvector.h:320: błąd: C2512: 'slowa' : no appropriate default constructor available
        

        konstruktor w c++

        slowa::slowa(QString xpolskie, QString xobce):
             polskie(xpolskie)
            , obce(xobce)
        {
        }
        
        1 Reply Last reply
        0
        • Chris KawaC Offline
          Chris KawaC Offline
          Chris Kawa
          Lifetime Qt Champion
          wrote on last edited by
          #4

          QVector wymaga, aby typ posiadał domyślny konstruktor, czyli możesz albo dodać nowy konstruktor:

          slowa() {}
          

          albo zmienić ten który masz dodając domyślne wartości argumentów:

          slowa(const QString& xpolskie = QString(), const QString& xobce = QString());
          
          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved