Tag: class

C函数调用C ++成员函数 – 其中C代码是用C编译器编译的

请关闭之前,阅读问题,看看为什么它不同(提示:它是C编译器) 我已经谷歌搜索了很多很多关于C函数如何调用C ++成员函数的解释。 它们看起来都类似于这个问题的接受答案,来自一个非常高的rep成员。 它说 在头文件中,放 extern “C” void* MyClass_create() { return new MyClass; } extern “C” void MyClass_release(void* myclass) { delete static_cast(myclass); } extern “C” void MyClass_sendCommandToSerialDevice(void* myclass, int cmd, int params, int id) { static_cast(myclass)->sendCommandToSerialDevice(cmd,params,id); } 并且,在C代码中,放 void* myclass = MyClass_create(); MyClass_sendCommandToSerialDevice(myclass,1,2,3); MyClass_release(myclass); 这看起来很简单,但我不明白的是头文件必须引用MyClass (不要介意static_cast ),但我想用C编译器(gcc)编译我的C代码,而不是C ++编译器(克++)。 它不会起作用。 如何从C代码调用C ++成员函数 – 这是用C编译器编译的?

C ++类模板未定义函数引用

当我在我的main函数中调用模板类“add”和“greater”中的两个函数时,我一直得到未定义的引用。 所以,我有:number.h #ifndef NUMBER_H #define NUMBER_H template class number { public: T x; T y; number (int a, int b){ x=a; y=b;} int add (T&); T greater (); }; #endif number.cpp #include “number.h” template int number::add (T& rezAdd){ rezAdd = x+y; return 1; } template T number::greater (){ return x>y? x : y; } 我的主文件是:resolver.cpp […]

C有class级吗?

好吧,你可以称我为菜鸟,但我很困惑。 我的前同学付钱让我在C写一个程序。她给了我一个任务,它说了一句“等等等等至少两个类 ,编写至少一个构造函数并重写至少一个方法 ”它一字一句地说。 然后我告诉她“这是C ++而不是C”她说“但我们正在学习C” 我忽略了它并用c ++编写程序并发送给她,因为我以为她不知道她在说什么。 她说“它不适用于代码块,wtf是cout <<”,然后她给我发了一大堆他们写的代码而不是cout和cin有printf和scanf。 它必须是C.所以,我用printf和scanf重写了程序,她仍然说代码块抛出错误(我仍然把类作为任务要求)。 C有class级吗? 或者有误会或什么?

如何从C调用C ++方法?

我有一个C ++类,我正在用一些C文件编译它。 我想调用一个用C ++定义的函数,实际上是在C ++类中,所以我该怎么做? 以下声明显示我在说什么:可能存在语法错误: serial_comm.cpp class MyClass { void sendCommandToSerialDevice(int Command, int Parameters, int DeviceId) { //some codes that write to serial port. } } external.c int main(int argc, char ** argv) { //what am I going to write here? }