我有一个结构
在 myStructure.h 中
struct myStructure
{
int myInteger;
double myDoublesArray[4];
char myCharArray[79];
};
在 myClass.h 中
#include "myStructure.h"
class myClass
{
private:
myStructure myStruct[4]
private:
Prog1Class();
~Prog1Class();
void setMyStructData();
};
在 main.cpp 中
#include<iostream>
#include <string>
#include "myClass.h"
#include "myStructure.h"
using namespace std;
void myClass::setMyStructData()
{
for(int i = 0; i < 5 ; i++)
{
cout << "Please enter an integer: " << endl;
cin >> myStruct[i].myInteger;
for(int j = 0; j< 5; j++)
{
cout << "Please enter a double: ";
cin >> myStruct[i].myDoublesArray[j];
}
cout << endl << "Please enter a string: ";
cin.ignore(256, '\n');
cin.getline(myStruct[i].myCharArray, 79, '\n');
}
}
int main(void)
{
setStructData();
cin.get()
}
我得到的错误是“‘myStructure’:‘struct’类型重新定义”,以及“‘.myInteger’的左边必须有类/结构/union ”
我确定这是我在结构上犯的一些简单错误,但我环顾四周,在我的菜鸟眼中一切似乎都是正确的。谢谢!
这不是家庭作业。我只是想重新开始编程,了解一些不同的东西是如何工作的,而且我正在做其他学校的旧作业。谢谢。
最佳答案
你的关键问题是你没有包含保护:当多次包含相同的头文件时,编译器会多次看到相同的定义并且不喜欢这样!您需要防范这种情况,通常使用宏,例如:
// myStructure.h
#ifndef INCLUDED_MYSTRUCTURE
#define INCLUDED_MYSTRUCTURE
// struct definition goes here
#endif
(同样适用于所有 其他 header )。
关于c++ - 结构和类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643531/