Hello there,

I would like to know how can I call a C++ ctor.

Actually, I have this:

C++:
CppClass.cpp
----------------
#include "CppClass.h"


AmazingCppClass::AmazingCppClass()
{
        number = 124;
}

int AmazingCppClass::getNumber(bool show)
{
        if (show)
                printf("Number: %s", number);
        return number;
}

void AmazingCppClass::add(int num)
{
        number += num;
}
----------------
CppClass.h:
----------------
#include <stdio.h>


class AmazingCppClass
{
private:
        int number;

public:
        AmazingCppClass();
        int getNumber(bool show);
        void add(int num);
};
----------------

D:
app.d
----------------
import std.stdio;

void main()
{
        auto dcpp = new AmazingCppClass();
        dcpp.getNumber(true); //segfault here
}

extern(C++) class AmazingCppClass
{
        this();

        int getNumber(bool show);

        void add(int num);
}
----------------

But somehow I got a segfault on dcpp.getNumber(true).
I found that there's a __cpp_new (https://dlang.org/phobos/core_stdcpp_new_.html), but I have no idea how to use it and the doc doesn't say a lot about this (https://dlang.org/spec/cpp_interface.html#using_cpp_classes_from_d)

Do you guys know ?

Reply via email to