c++头文件和类定义问题

C++ Headers files and class definitions issue

本文关键字:定义 问题 文件 c++      更新时间:2023-10-16

问题:我已经声明了一个类,然后在我的主函数中使用,它抛出未定义的错误。然后我添加了。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