Мне нужно использовать класс C++ в коде C.Использование классов C++ в C: Как правильно написать какую-то функцию «удалить/удалить»?
С таким C++ класс:
class MyClass
{
public:
void myFunction()
{
cout << "Value = " << m_value;
}
private:
int m_value;
};
У меня есть следующая обертка:
typedef void CMyClass;
#ifdef __cplusplus
extern "C" {
#endif
CMyClass * new_MyClass();
void c_myFunction(const CMyClass * ptr);
void c_dispose(???); // to delete/destruct
#ifdef __cplusplus
}
#endif
// implementation below:
CMyClass * new_CMyClass()
{
MyClass * ptr = new MyClass();
return (CMyClass*)ptr;
}
void c_myFunction(const CMyClass * ptr)
{
MyClass * tmp = (MyClass*)ptr;
tmp->myFunction();
}
void c_dispose(???)
{
/* ??? */
}
Я хотел бы только, чтобы убедиться, что у меня не будет никаких проблем, как утечки памяти, зомби указатели , с моей функцией c_dispose
.
Как правильно написать полный код для c_dispose(???)
для удаления ранее созданного (с new_CMyClass()
) экземпляра объекта?
http://stackoverflow.com/questions/14815274/how-to-call-a-c-method-from-c – sanjay