c++ - 结构和类错误

标签 c++ class struct structure

我有一个结构

在 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/

相关文章:

c++ - 如何在结构内对齐 __m256d?

c - 如何实现继承: error: conflicting declaration ‘typedef struct

c++ - 如何配置 VS Code 使其在程序运行后不会关闭控制台

python - python中的类继承

java - 如何从 Visual Studio Codes 中的其他文件调用 Java 类

c# - 将引用传递给集合元素

c++ - 为 boost::graph::copy_graph 提供顶点映射参数

c++ - wxDialog 工作正常,但 wxFileDialog 调用导致程序未终止

c++ - 我希望我的继承类具有相同的构造函数

php - 简化的递归 PHP