c++头文件和类定义问题
C++ Headers files and class definitions issue
问题:我已经声明了一个类,然后在我的主函数中使用,它抛出未定义的错误。然后我添加了。h文件,它又抛出了一个错误。我的问题是关于按照。cpp类文件写。h。以下是详细信息:
我在ElevatorButton.cpp:
中声明了这个类#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class ElevatorButton
{
public:
int pressed = 0; // boolean
void myFunc(int param1)
{
cout << param1 << endl;
}
};
然后在elevatorsimulation。cpp:
中有这个文件#include "stdafx.h"
#include <iostream>
#include <string>
#include "Header.h"
using namespace std;
int main()
{
ElevatorButton ElvBtn;
cout << ElvBtn.myFunc(1) << endl;
}
定期编译代码会抛出错误。我应该声明头文件,因为它似乎。但是在我的头文件中,我应该如何管理定义呢?我读过关于。h文件,但仍然感到困惑。这是我的header.cpp:
#ifndef ElevatorButton_H
#define ElevatorButton_H
class ElevatorButton
{
public:
int pressed = 0; // boolean
public:
void myFunc(int param1){};
};
#endif
但是它会抛出Header.h:
1>ElevatorSimulation.cpp(14): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)
你得到这个错误,因为myFunc
返回void,所以
cout << ElvBtn.myFunc(1)
当右边计算为void时,没有定义。如果你想用cout
打印一个值,那么myFunc
必须返回一个可以传递到流中的类型。
问题根本不在于你的类定义,而在于你的主函数。
是header.cpp吗?因为它应该是header。h
相关文章:
- Visual Studio中的函数声明和函数定义问题
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 如何在标头中声明(或定义)函数的问题
- Xcode 语义问题引用或以前定义的代码
- 我的超类中的模板问题与结构定义
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- googlemock - 如何处理"多重定义"问题?
- 使用前向声明的类重定义问题
- 模板多个定义问题
- std::ofstream 变量定义问题
- 重新定义C++问题,多个标头
- 重新排序包含目录如何解决宏重定义问题
- 类型定义问题
- 预处理器:生成具有动态名称的函数.多个定义问题
- C++通用定义问题(ADT、成员、构造函数和重载)
- c++头文件和类定义问题
- 编译器错误-定义问题.C++
- C&C++默认全局变量链接,多重声明和定义问题