手动将Python类转换为C++类

Manually Converting a Python Class to a C++ Class

本文关键字:转换 C++ Python      更新时间:2023-10-16

我有一些代码需要从Python转换为C++。由于我对C++不太了解,我想用这个例子来帮助我理解Python类是如何关联/可以转换为C++类的。

给定以下Python代码:

class MyClass(object):
    # Constructor
    def __init__(self, arg1, arg2=True):
        self.Arg1 = arg1
        self.Arg2 = arg2
    # Function __my_func__
    def __my_func__(self, arg3):
        return arg3

C++的正确翻译是什么?

我一直试图通过cplusplus.com上的教程自学如何做到这一点,但我仍然不明白如何将其与Python联系起来。

我也看到一些SO问题询问如何将Python程序转换为C++(例如,将Python程序转化为C/C++代码?),但大多数答案都建议使用Cython这样的特定工具进行转换(我希望手动完成)。

它看起来像这样。arg1arg2变量是私有的,这意味着除非编写getter/setter函数(我为arg1添加了该函数),否则它们在类之外是不可访问的。

class MyClass {
    public:
        MyClass (int arg1, bool arg2 = true);
        int myFunc (int arg3);
        int getArg1 ();
        void setArg1 (int arg1);
    private:
        int arg1;  // Can be accessed via the setter/getter
        bool arg2; // Cannot be accessed outside of the class
};
MyClass::MyClass(int arg1, bool arg2 = true) {
    this.arg1 = arg1;
    this.arg2 = arg2;
}
int MyClass::myFunc (int arg3) {
    return arg3;
}
// Getter
int MyClass::getArg1 () {
    return this.arg1;
}
// Setter
void MyClass::setArg1 (int arg1) {
    this.arg1 = arg1;
}