所以我有這個頭文件:「錯誤:類定義」 - 但沒有重新說明
#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:錯誤:重新定義'類傢俱'
Furniture.h:5:錯誤:以前的定義「類傢俱」」
但據我所知,我正確聲明的類和定義並沒有重新聲明它。爲什麼它給我這個錯誤,我能做些什麼來解決它?
你在cc文件main中還有'#include「Furniture.h」'嗎?你是否在任何地方包含傢俱cc文件? – NathanOliver
我看不到'#pragma once'或在標題中包含警衛。 – DeathTails