1 pièce(s) jointe(s)
Undefined reference to 'MaFenetre::MaFenetre'
onjour a tous ,
je travaille sur un projet sous QT ; je dois lire les contenues d'un fichier qui seront les données d'une autre fonction, j'ai la fonction qui s'occupe de lire le contenue de fichier lorsque je le teste seul il fonctionne bien , voila le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <fstream>
*
using namespace std;
*
struct point
{
double x;
double y;
double z;
};
*
vector<point> readingData(string inputFileName)
{
vector<point> inputData;
string line, token;
point newPoint;
ifstream file;
file.open(inputFileName.c_str(), ifstream::in);
if (file.is_open())
{
while (getline(file, line))
{
istringstream ss(line);
getline(ss, token, ',');
newPoint.x = stod(token);
getline(ss, token, ',');
newPoint.y = stod(token);
getline(ss, token, ',');
newPoint.z = stod(token);
inputData->push_back(newPoint);
}
return inputData;
}
else
cout << "Unable to open file";
file.close();
}
int main()
{
vector<point> inputData;
readingData("test.txt");
for (int i = 0; i < inputData.size(); i++)
{
cout << inputData.at(i).x << "* " << inputData.at(i).y << "* " << inputData.at(i).z << endl;
}
system("pause");
return 0;
} |
mon projet c'est une interface graphique , donc je dois ajouter ce code au sein de programme de la conception de l'interface ; je le fais comme ceci :
fichier.h :
Code:
1 2
| public :
vector<point> readingData(string inputFileName, vector<point>* inputData); |
j'ai recopie la fonctionne ds le fichier .cpp dehors la classe MaFenetre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| vector<point> readingData(string inputFileName) {
vector<point> inputData ;
string line, token;
point newPoint;
ifstream file;
file.open(inputFileName.c_str(), ifstream::in);
if (file.is_open())
{
while (getline(file, line))
{
istringstream ss(line);
getline(ss, token, ',');
newPoint.x = stod(token);
// getline(ss, token, ',');
newPoint.y = stod(token);
// getline(ss, token, ',');
newPoint.z = stod(token);
inputData->push_back(newPoint);
}
return inputData ;
}
else
cout << "Unable to open file";
file.close();
} |
et a l'interieur de la classe MaFenetre je fais appelle a la fonction pour recopier le fichier dans une autre fonction :
Code:
1 2 3 4 5 6 7 8 9 10
| QScatter3DSeries *series = new QScatter3DSeries(graph);
vector<point> inputData = MaFenetre::readingData("text.txt");
QScatterDataArray data;
for (int i=0; i<inputData.size();i++)
{data.push_back(QScatterDataItem(QVector3D(inputData[0],inputData[1],inputData[2])));
}
series->dataProxy()->addItems(data);
graph->addSeries(series); |
et lorsque je compile j'ai le message d'erreur suivant :
Pièce jointe 385245