私はC ++を初めて使用し、まだあまり知りません。私はこの奇妙な問題を抱えています。正しく動作している関数がありますが、変更せずにクラスのメンバー関数として実行しようとすると、動作しません: gsiread::get_rows(char *) への未定義参照
#include <string>
#include <vector>
#include <fstream>
using namespace std;
//vector<string> get_rows ( char filepath[] ); ... it works
class gsiread {
public:
vector<string> get_rows ( char filepath[] ); ... it doesnt work
private:
};
vector<string> get_rows ( char filepath[] ) {
vector<string> data;
string str;
ifstream file;
file.open(filepath);
if( file.is_open() ) {
while( getline(file,str) ) {
if ( str.empty() ) continue;
data.push_back(str);
}
}
return data;
}
// This part is "like" main i am using Qt creator and i have copied parts of code
from separate files
gsiread obj;
vector<string> vypis;
vypis = obj.get_rows("ninja.txt"); ....... //This doesnt work
vypis = get_rows("ninja.txt"); .......... //This works if I put declaration of
//function get_rows outside the class and
//and use // on declaration inside the class
for( int i = 0; i < vypis.size(); i++ ) {
QString n = QString::fromStdString(vypis[i]);
QString t = "%1 \n";
ui->plainTextEdit->insertPlainText(t.arg(n));
// QString is like string but zou have to use it if wanna use widgets
// of qt (I think )
}