Как вызвать конструктор для объекта, являющегося членом структуры? Есть C проект, к которому прикрутил C++ библиотеку. И вот примерно следующий код
class A{
private:
int field;
public:
A() {printf("creating\n");field = 0;};
~A() {printf("destroyer\n");};
void set_field(int a) {field = a;};
int get_field() {return field;};
};
struct a_t {
A a;
};
struct a_t* a_new()
{
struct a_t *a;
a = (struct a_t*) malloc(sizeof(struct a_t));
struct a_t b;
return a;
}
int main()
{
int what = 1;
struct a_t *a = a_new();
printf("%d\n", a->a.get_field());
a->a.set_field(100);
printf("%d\n", a->a.get_field());
return 0;
}
выводит
creating
destroyer
0
100
Т.е. конструктор члена структуры не вызывается, и из-за этого косяки в проекте.
И, чтобы ещё темы не создавать, есть ли возможность создать C обёртку над C++-ным проектом?