błąd: prototype for int doesn't match any ....

0

Na początek niech stanie się kod :

#include <QtGui>
#include <QtCore>
#include "oknogl.hpp"

const QString  a ;
const QString  b ;
const QString  c ;
const QString  mz1 ;
const QString  mz2 ;
const QString  q ;
const QString  p ;
const QString  deltha  ;
float wa ;
float wb ;
float wc ;
float wmz1 ;
float wmz2 ;
float wq ;
float wp ;
 float wdeltha ;

oknogl::oknogl()
{
//Pola do Wprowadzania i Labelez tekstem
//AX^2

    axw = new QLineEdit( a , this) ;
    axt = new QLabel("ax^2") ;

//Bx
    bxw = new QLineEdit(b , this ) ;
    bxt = new QLabel("bx") ;
//C
    cw = new QLineEdit(c , this) ;
    ct = new QLabel("c") ;

//rząd delty
    odelta = new QLabel("Delta wynosi : " , this ) ;
    delta = new QLineEdit(deltha ,this ) ;
//rząd x i q
    oq = new QLabel("Q wynosi : " , this ) ;
    wynq = new QLineEdit(q ,this)  ;
    ox = new QLabel("P wynosi : " , this ) ;
    wynx = new QLineEdit(p ,this)  ;
//rząd miejsc zerowych
    ox1 = new QLabel("Pierwsze miejsce zerowe to : " , this) ;
    wynx1 = new QLineEdit(mz1 ,this) ;
    ox2 = new QLabel("Drugie to : " , this) ;
    wynx2 = new QLineEdit(mz2 ,this) ;

// kolumny dla tego wyżej

    kol1 = new QVBoxLayout(this) ;
    kol1->addWidget(axw);
    kol1->addWidget(axt);

    kol2 = new QVBoxLayout(this) ;
    kol2->addWidget(bxw);
    kol2->addWidget(bxt) ;

    kol3 = new QVBoxLayout(this) ;
    kol3->addWidget(cw);
    kol3->addWidget(ct) ;

    wiersz = new QHBoxLayout(this) ;
    wiersz->addLayout(kol1);
    wiersz->addLayout(kol2);
    wiersz->addLayout(kol3);

    kdelta = new QHBoxLayout(this) ;
    kdelta->addWidget(odelta);
    kdelta->addSpacing(5);
    kdelta->addWidget(delta);
    kqix = new QHBoxLayout(this) ;
    kqix->addWidget(oq);
    kqix->addSpacing(5);
    kqix->addWidget(wynq);
    kqix->addSpacing(5);
    kqix->addWidget(ox);
    kqix->addSpacing(5);
    kqix->addWidget(wynx);
    kmz = new QHBoxLayout(this ) ;
    kmz->addWidget(ox1);
    kmz->addSpacing(5);
    kmz->addWidget(wynx1);
    kmz->addWidget(ox2);
    kmz->addSpacing(5);
    kmz->addWidget(wynx2);

    glownakolumna = new QVBoxLayout(this ) ;
    glownakolumna->addLayout(wiersz);
    glownakolumna->addLayout(kdelta) ;
    glownakolumna->addLayout(kqix);
    glownakolumna->addLayout(kmz);

    glowna = new QLabel("" , this) ;
    this->setCentralWidget(glowna);
    glowna->setLayout(glownakolumna);
    this->setMinimumSize(180 , 180);


//akcje
   connect(axw  , SIGNAL(textEdited(QString)) , this , SLOT(zmianawspola())) ;
   connect(bxw  , SIGNAL(textEdited(QString)) , this , SLOT(zmianawspolb())) ;
   connect(cw  , SIGNAL(textEdited(QString)) , this , SLOT(zmianawspolc())) ;
   connect(wynq  , SIGNAL(textEdited(QString)) , this , SLOT(zmianaq())) ;
   connect(wynx  , SIGNAL(textEdited(QString)) , this , SLOT(zmianap())) ;
   connect(wynx1  , SIGNAL(textEdited(QString)) , this , SLOT(zmianam1())) ;
   connect(wynx2 , SIGNAL(textEdited(QString)) , this , SLOT(zmianam2())) ;
   connect(delta  , SIGNAL(textEdited(QString)) , this , SLOT(zmianadelty())) ;


}



void oknogl::zmianawspola()
{
wa = a.toFloat() ;
}

void oknogl::zmianawspolb()
{
wb = b.toFloat() ;
}

void oknogl::zmianawspolc()
{
wc = c.toFloat() ;
}

void oknogl::zmianaq()
{
wq = q.toFloat() ;
}

void oknogl::zmianap()
{
wp = p.toFloat() ;
}

void oknogl::zmianam1()
{
wmz1 = mz1.toFloat() ;
}

void oknogl::zmianam2()
{
wmz2 = mz2.toFloat() ;
}

void oknogl::zmianadelty()
{
wdeltha = deltha.toFloat() ;
}

obliczanie::obdelta(float wa , float wb  , float wc  , float wdeltha)
{
    wbdelta = (wb*wb)-4*(wa*wc) ;
}

I nagłówkowy

#ifndef OKNOGL_HPP
#define OKNOGL_HPP

#include <QtGui>
#include <QtCore>

extern const QString  a ;
extern const QString  b ;
extern const QString  c ;
extern const QString  mz1 ;
extern const QString  mz2 ;
extern const QString  q ;
extern const QString  p ;
extern const QString  deltha  ;
extern  float wa ;
extern  float wb ;
extern  float wc ;
extern  float wmz1 ;
extern  float wmz2 ;
extern  float wq ;
extern  float wp ;
extern  float wdeltha ;

class oknogl : public QMainWindow
{
    Q_OBJECT
private :
QLineEdit *axw ;
QLineEdit *bxw ;
QLineEdit *cw ;
QLabel * axt ;
QLabel * bxt ;
QLabel * ct ;
QLabel * glowna ;

QVBoxLayout * kol1 ;
QVBoxLayout * kol2 ;
QVBoxLayout * kol3 ;
QVBoxLayout * glownakolumna ;
QHBoxLayout * wiersz ;
QHBoxLayout * kdelta ;
QHBoxLayout * kqix ;
QHBoxLayout * kmz ;

QLabel * odelta ;
QLineEdit * delta ;
QLabel * oq ;
QLineEdit * wynq ;
QLabel * ox ;
QLineEdit * wynx  ;
QLabel * ox1 ;
QLabel * ox2 ;
QLineEdit * wynx1 ;
QLineEdit * wynx2 ;

public:
    oknogl() ;

private slots :
    void zmianawspola() ;
    void zmianawspolb() ;
    void zmianawspolc() ;
    void zmianadelty() ;
    void zmianaq() ;
    void zmianap() ;
    void zmianam1() ;
    void zmianam2() ;
};

class obliczanie
{
public :
    float obdelta(float wa,float wb , float wc  , float  wdeltha) ;
} ;

#endif // OKNOGL_HPP
 

Cóż wiem że trochę długo ale mam następujący problem . A więc tworzę sobie klasę i funkcję w niej (Obliczanie i obdelta) ale kompilator nie chce mi tego przepuścić za żadne skarby bo wciąż cokolwiek robię rzuca że " Prototype for int obliczanie::obdelta(float , float, float , float) does not match any in class obliczanie .
Oświeci mnie ktoś co robię nie tak (Ps z nawiasów przy deklaracji funkcji w klasie usuwałem też nazwy zmiennych ) ? I dlaczego on to traktuje jak int skoro ma być float.?

1

W kodzie brakuje typu zwracanego przez f() w miejscu:
obliczanie::obdelta(float wa , float wb , float wc , float wdeltha)
{
wbdelta = (wbwb)-4(wa*wc) ;
}

2

Definicja:

obliczanie::obdelta(float wa , float wb  , float wc  , float wdeltha)

A gdzie typ zwracany? Jeżeli go nie masz kompilator domyślnie przyjmuje int. W deklaracji (plik nagłówkowy) masz float. Włącz sobie ostrzeżenia to na pewno by o tym napisał.

Edit: przegrałem.

0

Bardzo wam dziękuję za pomoc . Nie wiem co się ze mną ostatnio dzieje że wykładam się na takich prostotach .

1 użytkowników online, w tym zalogowanych: 0, gości: 1