当前位置: 技术问答>linux和unix
c与c++的问题!
来源: 互联网 发布时间:2015-09-22
本文导语: 用c++生成库,导出一个类指针。怎么样定义这个类才能被c调用啊? #ifdef _cplusplus extern "C" { #endif #ifdef _cplusplus class A { public: virtual void B()=0; }; #else struct A { void B(A* pThis); }; #endif #ifdef _cplusplus } #endif A类...
用c++生成库,导出一个类指针。怎么样定义这个类才能被c调用啊?
#ifdef _cplusplus
extern "C"
{
#endif
#ifdef _cplusplus
class A
{
public:
virtual void B()=0;
};
#else
struct A
{
void B(A* pThis);
};
#endif
#ifdef _cplusplus
}
#endif
A类能被c调用吗?
#ifdef _cplusplus
extern "C"
{
#endif
#ifdef _cplusplus
class A
{
public:
virtual void B()=0;
};
#else
struct A
{
void B(A* pThis);
};
#endif
#ifdef _cplusplus
}
#endif
A类能被c调用吗?
|
好象说错了,应该是struct定义一个指向函数数组指针,即定义一个vtable指针,而不能直接定义函数指针
|
c编译器中对类是不支持的
所以A类不能被c调用
gcc不支持struct中定义函数
所以A类不能被c调用
gcc不支持struct中定义函数
|
这个例子应该是没有问题的