weil ein ähnliches Programm mit QList läuft, wollte ich mit QVector zwei eindimensionale Felder bzw. Vektoren in einer Klasse addieren. Leider gibt es die unten angegebenen Fehlermeldungen. Kann mir jemand mitteilen, was ich ändern muß?
Code: Alles auswählen
#include <QtCore/QCoreApplication>
#include "matdemo.h"
#include <iostream>
#include <QVector>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
double x[5]={1.1,2.2,3.3,4.4,5.5};
double y[5]={2.2,4.4,6.6,8.8,11.0};
QVector<double>v1(5);
;
for(int i=0;i<5;i++)
{v1.push_back(x[i]);
}
QVector<double> v2(5);
for(int i=0;i<5;i++)
{v2.push_back(y[i]);
}
MatDemo demo(v1,v2);
QVector<double> result(5);
demo.addiereVec(result);
for(int i=0;i<5;i++)
{
std::cout<<" "<<result[i];
}
return a.exec();
}
#ifndef MATDEMO_H //Header-Datei
#define MATDEMO_H
#include <QVector>
class MatDemo
{
public:
MatDemo(const double &v1, const double &v2);
void addiereVec(double &result);
private:
double p_in_v1;
double p_in_v2;
};
#endif // MATDEMO_H
#include "matdemo.h" //Quelldatei
#include <QObject>
MatDemo::MatDemo(const double &v1, const double &v2):p_in_v1(v1),p_in_v2(v2)
{
}
void MatDemo::addiereVec(double &result)
{for(int i=0;i<5;i++)
{R[i]=p_in_v1[i]+p_in_v2[i];
result.push_back(R[i]);
}
}
Code: Alles auswählen
main.cpp:20: error: no matching function for call to ‘MatDemo::MatDemo(QVector<double>&, QVector<double>&)’
main.cpp:22: error: no matching function for call to ‘MatDemo::addiereVec(QVector<double>&)’