Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用C++;Objective-C中的方法 我有C++文件:C.cpp和C.h < /P> //C.h #ifndef __ThreeMoreOpenCV__SourceC__ #define __ThreeMoreOpenCV__SourceC__ #include <iostream> class C { public: static void Cmethod (); }; #endif //C.cpp #include "SourceC.h" using namespace std; void Cmethod() { printf("ff"); } /C.h #如果NDEF\uuuuuuuuuuuuuuuuuuu3oreopencv\uuuuuuuuuuuuuuuuuu SourceC__ #定义三个以上OpenCV\uuuu SourceC__ #包括 C类 { 公众: 静态空隙法(); }; #恩迪夫 //C.cpp #包括“SourceC.h” 使用名称空间std; void Cmethod() { printf(“ff”); }_C++_Objective C_Objective C++ - Fatal编程技术网

如何调用C++;Objective-C中的方法 我有C++文件:C.cpp和C.h < /P> //C.h #ifndef __ThreeMoreOpenCV__SourceC__ #define __ThreeMoreOpenCV__SourceC__ #include <iostream> class C { public: static void Cmethod (); }; #endif //C.cpp #include "SourceC.h" using namespace std; void Cmethod() { printf("ff"); } /C.h #如果NDEF\uuuuuuuuuuuuuuuuuuu3oreopencv\uuuuuuuuuuuuuuuuuu SourceC__ #定义三个以上OpenCV\uuuu SourceC__ #包括 C类 { 公众: 静态空隙法(); }; #恩迪夫 //C.cpp #包括“SourceC.h” 使用名称空间std; void Cmethod() { printf(“ff”); }

如何调用C++;Objective-C中的方法 我有C++文件:C.cpp和C.h < /P> //C.h #ifndef __ThreeMoreOpenCV__SourceC__ #define __ThreeMoreOpenCV__SourceC__ #include <iostream> class C { public: static void Cmethod (); }; #endif //C.cpp #include "SourceC.h" using namespace std; void Cmethod() { printf("ff"); } /C.h #如果NDEF\uuuuuuuuuuuuuuuuuuu3oreopencv\uuuuuuuuuuuuuuuuuu SourceC__ #定义三个以上OpenCV\uuuu SourceC__ #包括 C类 { 公众: 静态空隙法(); }; #恩迪夫 //C.cpp #包括“SourceC.h” 使用名称空间std; void Cmethod() { printf(“ff”); },c++,objective-c,objective-c++,C++,Objective C,Objective C++,还有Wrapper.h/.mm //Wrapper.h #import <Foundation/Foundation.h> @interface CVWrapper : NSObject +(void)returnCmethod; @end //Wrapper.mm #import "Wrapper.h" #import "C.h" @implementation CVWrapper +(void)returnCmethod { C::Cmethod(); } @e

还有Wrapper.h/.mm

//Wrapper.h
#import <Foundation/Foundation.h>

@interface CVWrapper : NSObject
+(void)returnCmethod;
@end

//Wrapper.mm
#import "Wrapper.h"
#import "C.h"

@implementation CVWrapper

+(void)returnCmethod
{
    C::Cmethod();
}

@end
//Wrapper.h
#进口
@接口:NSObject
+(无效)返回方法;
@结束
//包装纸
#导入“Wrapper.h”
#输入“C.h”
@CVWrapper的实现
+(无效)返回方法
{
C::Cmethod();
}
@结束
我不知道,但我得到了一个错误,比如:

“C::Cmethod()”,引用自: +Wrapper.o中的[Wrapper returnCmethod] ld:未找到架构i386的符号 clang:error:linker命令失败,退出代码为1(使用-v查看调用)


有谁能告诉我调用函数的正确方法吗?

您还没有在C类中实际实现Cmethod函数。您需要在函数头中使用
C::
实现它,如:

void C::Cmethod()
{
    printf("ff");
}

实际上,您还没有在C类中实现Cmethod函数。您需要在函数头中使用
C::
实现它,如:

void C::Cmethod()
{
    printf("ff");
}

编辑了这个标题,因为它具有极大的误导性。此外,我建议您将“C”类重新命名为更具描述性的名称。请编辑标题,因为它具有极大的误导性。此外,我建议将您的“C”类重新命名为更具描述性的名称。