gpt4 book ai didi

C++ 从方法返回结构

转载 作者:搜寻专家 更新时间:2023-10-31 00:51:33 25 4
gpt4 key购买 nike

我想从一个方法返回一个结构,但返回的结构需要在不同的类中使用。这是我当前的代码:

歌曲.h:

class song{   
public:
Song(char szTitle[50]);
Song();
struct ToneStruct;
ToneStruct GetNextNote();
~Song();
};

歌曲.cpp:

struct ToneStruct {
char cTone;
int iTime;
int iTimePassed;
};

ToneStruct Song::GetNextNote(){
while (iTempTime != endOfFile) {
//do stuff
while (iTempTime != 59) {
//do stuff
}
ToneStruct toneStruct(cTone,iPlayTime, iTimePassed);
return toneStruct;
}
ToneStruct endStruct('X', 0, 0);
return endStruct;
}

由于该方法,我收到一条错误消息,提示“声明与 song.h 不兼容”,并且在方法内部的结构上提示“不允许不完整的类型”。我做错了什么?

最佳答案

您已经在 song 类中前向声明了 struct ToneStruct ,这意味着它在 song 命名空间中因此可以作为 song::TongStruct 访问,但是您在源文件 song 中声明了一个 ToneStruct 结构> 命名空间,然后可以作为 ToneStruct 进行评估。编译器会将它们视为不同的类型。

要修复该错误,您应该将前向声明移出类,或者为您的类型使用 Song::ToneStruct

关于C++ 从方法返回结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54783953/

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