C++类中使用函数时出错
C++ geting error while using function inside class
我不知道为什么我会收到此错误:"函数未声明"。我仍然是编程的新手,但我正在尽力学习它!所以这是我的代码,如果你能帮助我,我会很棒:主要:
#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++ 中做任何静态操作以来已经有一段时间了,所以如果我在第二个选项中做错了什么,请纠正我。
-
您的
two or more data types...
错误来自滥用...东西。。。之后是公共访问说明符。更改此设置:
public:szovegkezelo
对此:
public:
如果你试图创建一个构造函数,它需要像任何其他函数一样声明,减去返回类型。
- 发生其他错误是因为此函数声明不正确。
-
除此之外,您需要先创建一个对象,然后才能调用类的函数。每个对象都有自己的一组函数处理的变量。我认真地建议阅读一本好的初学者C++OOP书。
在main的某个地方,你需要创建一个对象:
szovegkezelo myObject;
然后,使用它来调用函数:
myObject.kiir (sz);
- 最后,请注意,数据成员通常应使用
private
访问说明符进行声明。protected
与未继承自的普通类无关。
件事:
1(在主方面,您尚未实例化szovegkezelo
的对象,并且您正在尝试调用beolvas
。编译器正在寻找一个自由函数beolvas
而您已将beolvas
声明为成员函数
2(如果您正在寻找一个不执行任何操作的默认构造器,则public:szovegkezelo
不正确,如果您需要对默认构造执行特定操作,则没有该行,请在标头中将其声明为szovegkezelo()
。
3(如评论中所述,放 using namespace std
在头文件或任何using namespace
中
- 类中私有结构的构造函数出错
- 字符串验证函数出错
- 我的类默认构造函数出错
- Dev-C++和Code::Blocks中的析构函数出错
- int对的哈希函数出错
- MSVC 编译器错误导致迭代器和友元函数出错
- 复制构造函数出错
- 使用 WinSock2 开发,使用 CreateThread() 函数出错
- 链接列表的Push_back函数出错
- 结构初始化中的隐式复制构造函数出错
- 异步函数出错
- 编译器错误消息错误:令牌之前的预期')' '*'。我的构造函数出错
- c++中使用std::bind和std::函数出错
- 在vector排序中使用c++模板函数出错
- 使用std::for_each lambda函数出错
- 二叉搜索树插入函数出错
- 调用类的函数出错
- c++使用删除函数出错
- 使用已删除的函数出错
- 调用构造函数出错