python调用 C++ 的类
时间: 2023-11-04 22:17:26 浏览: 136
python调用c++ ctype list传数组或者返回数组的方法
Python可以通过ctypes库调用C语言的函数和变量,并且也可以调用C语言的类。下面是一个简单的例子:
C语言代码:
```
// MyMath.h
#ifndef MY_MATH_H
#define MY_MATH_H
class MyMath {
public:
static int add(int a, int b);
};
#endif
```
```
// MyMath.cpp
#include "MyMath.h"
int MyMath::add(int a, int b) {
return a + b;
}
```
Python代码:
```
import ctypes
# 加载动态链接库
my_math = ctypes.cdll.LoadLibrary("./libmymath.so")
# 定义C++类
class MyMath(object):
def __init__(self):
self.obj = my_math.MyMath_new()
def add(self, a, b):
return my_math.MyMath_add(self.obj, a, b)
# 调用C++类的方法
math = MyMath()
result = math.add(1, 2)
print(result)
```
需要注意的是,在C++的类中,需要将类的方法声明为extern "C",并且在Python中需要使用ctypes.c_void_p类型来表示类的对象。在Python中,需要使用ctypes的CDLL或WinDLL函数加载动态链接库。
阅读全文