gpt4 book ai didi

c++ - Objective-C++ 项目中枚举类型参数的问题

转载 作者:行者123 更新时间:2023-11-28 05:50:47 24 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序(在 xCode 7.2 中),其中的核心类是用 C++ 编写的。但是当我尝试测试具有枚举参数的函数成员时遇到了问题。我尝试了不同的枚举声明和转换方式,但没有成功,关注了这里和网络上的一些帖子。此后您可以看到我尝试的最新版本:

全局定义.h:

enum OMColumnHeader : unsigned long
{
OMColumnPOD = 1 << 1, //1
OMColumnPWT = 1 << 2, //2
...
} OMColumnHeader;

在类头文件(.h)中:

class HeaderManager
{
public:
void setDefaultHeader(enum OMColumnHeader header);

在类实现文件(.cpp)中:

void HeaderManager::setDefaultHeader(enum OMColumnHeader header)
{
...
}

在控制台项目的主文件 (.mm) 中:

#include <iostream>
#include " GlobalDefinitions.h"
#include " HeaderManager.h"

int main(int argc, const char * argv[])
{
OMHeaderManager *headerClass= new OMHeaderManager();

headerClass->setDefaultHeader((enum OMColumHeader)OMColumnPWT);

delete headerClass;
return 0;
}

我在最后一行(.mm 文件)中收到以下错误:无法使用类型为“enum OMColumnHeader”的右值初始化“enum OMColumnHeader”的参数。

非常欢迎任何帮助/评论!

最佳答案

在 C++ 中,您不需要在枚举声明中使用尾随标识符。只是:枚举 OMColumnHeader : unsigned long {...};杀死其他出现的 enum 并更改对 setDefaultHeader 的调用,如下所示:headerClass->setDefaultHeader( OMColumnHeader::OMColumnPWT);

关于c++ - Objective-C++ 项目中枚举类型参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299823/

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