我不明白为什么会出现此错误:“函数未声明”。我仍然是编程的新手,但我正在努力学习它! 所以这是我的代码,如果你能帮助我,我将非常感激: 主要:
#include <iostream>
#include <vector>
#include "szovegkezelo.h"
using namespace std;
int main()
{
string sz;
beolvas(sz);
kiir(sz);
return 0;
}
标题:
#ifndef SZOVEGKEZELO_H_INCLUDED
#define SZOVEGKEZELO_H_INCLUDED
#include <iostream>
using namespace std;
class szovegkezelo {
protected:
string sz;
public:szovegkezelo
void beolvas(string &sz);
void kiir(string t);
};
#endif // SZOVEGKEZELO_H_INCLUDED
cpp:
#include "szovegkezelo.h"
#include <iostream>
void szovegkezelo::beolvas(string &sz)
{
getline(cin, sz);
}
void szovegkezelo::kiir(string t)
{
cout << "a beadott szoveg: " << t << endl;
cout << "a string hossza: " << t.size() << endl;
}
最佳答案
从它的外观来看,您正在尝试从“main”中调用一个名为“beolvas”的类函数(方法),但是因为它属于一个类,所以您不能那样调用它,您需要创建一个该类的实例并调用该实例的方法,或将函数设为静态并从类中调用它。
您的第一个选择是创建该类的一个实例,然后像这样调用该类的方法:
int main()
{
string sz;
szovegkezelo szov;
szov.beolvas(sz);
svoz.kiir(sz);
return 0;
}
您的第二个选择是使类中的函数成为静态函数,这样它们就不需要调用类的实例:
int main()
{
string sz;
szov::beolvas(sz);
svoz::kiir(sz);
return 0;
}
static void szovegkezelo::beolvas(string &sz)
{
getline(cin, sz);
}
static void szovegkezelo::kiir(string t)
{
cout << "a beadott szoveg: " << t << endl;
cout << "a string hossza: " << t.size() << endl;
}
自从我在 C++ 中做任何静态的事情以来已经有一段时间了,所以如果我在第二个选项中做错了什么,请纠正我。
关于C++在类中使用函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645773/