Xcode:C++ 错误:未知类型名称“class”您的意思是“Class”

问题描述 投票:0回答:3

我正在尝试在 Xcode 项目中实现 C++ 类,但出现以下错误:

Expected ';' after top level declarator
Unknown type name 'class'; did you mean 'Class'

这就是我正在做的事情。我正在添加新的 C++ 文件:

我正在添加头文件:

之后我将其添加到头文件中:

#ifndef DoingSomething_hpp
#define DoingSomething_hpp
#include <stdio.h>
class DoingSomething {
public:
    static DoingSomething *instance();
    int doSomething();
};
#endif /* DoingSomething_hpp */

但是在我将 DoingSomething.hpp 添加到我的 viewController 后,错误开始显示:

#import "ViewController.h"
#import "DoingSomething.hpp"

@interface ViewController ()

你们中的任何人都知道为什么会出现此错误,或者我该如何修复,或者是否有解决方法?

我将非常感谢您的帮助。

c++ ios objective-c xcode8
3个回答
4
投票

问题是您在 Objective-C 文件(它是 C 的超集)中使用 C++ 标头,这就是它无法识别 C++ 语法的原因。为了使其正确编译,您应该只在 c++ 或 Objective-C++ (.mm) 源文件中包含 C++ 头文件。尝试将 viewControllers 文件扩展名从 .m 更改为 .mm


1
投票

将文件扩展名从

.m
(Objective C)更改为
.mm
(Objective C++),您的编译将会更加顺利。


0
投票

我混合了 C 和 C++ 文件,因此我必须用“#ifdef __cplusplus”包装 C++ 标头内容,如下所示。这立即位于标题的通常“#ifndef”内。

#ifdef __cplusplus

#包括

类废话 { ... }

#endif /* __cplusplus */

© www.soinside.com 2019 - 2024. All rights reserved.