gpt4 book ai didi

c++ - "Error: Redefinition of Class"- 但没有重新声明

转载 作者:行者123 更新时间:2023-11-27 22:53:18 25 4
gpt4 key购买 nike

所以我有这个头文件:

#include <iostream>
#include <string>

class Furniture
{
float width, height, depth;
std::string name;

public:
// Constructor
Furniture(std::string name);
void ReadDimensions();
virtual void Print();
};

这个 .cc 文件定义了上面声明的函数:

#include "Furniture.h"

Furniture::Furniture(std::string name)
{
this->name = name;
}

void Furniture::ReadDimensions()
{
// Read width
std::cout << "Enter width: ";
std::cin >> width;
// Read height
std::cout << "Enter height: ";
std::cin >> height;
// Read depth
std::cout << "Enter depth: ";
std::cin >> depth;

if (width <= 0 || height <= 0 || depth <=0)
std::cout << "You entered invalidd values\n";
}

当我尝试编译我的主文件时,它包含两个用它们自己的文件编写的子类,它给了我一个错误,显示为

“Furniture.h:4: 错误:‘class Furniture’的重新定义

Furniture.h:5: 错误:‘class Furniture’ 的先前定义”

但据我所知,我正确地声明了类并且没有在定义中重新声明它。为什么会出现此错误,我该如何解决?

最佳答案

尝试在您的 .h 文件中添加以下代码。这将阻止重新定义。

#ifndef __FURNITURE_H__
#define __FURNITURE_H__

#include <iostream>
#include <string>

class Furniture
{
float width, height, depth;
std::string name;

public:
// Constructor
Furniture(std::string name);
void ReadDimensions();
virtual void Print();
};

#endif

关于c++ - "Error: Redefinition of Class"- 但没有重新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35464517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com