如何做日本語網(wǎng)站百度品牌廣告
文章目錄
- 測試代碼
測試代碼
在C語言中調(diào)用C++類,需要遵循幾個步驟:
在C++代碼中,確保C++類的函數(shù)是extern “C”,這樣可以防止名稱修飾(name mangling)。
使用頭文件聲明C++類的公共接口,并且為這個頭文件提供C語言兼容的接口。
編譯C++代碼為對象文件或庫。
在C語言代碼中包含這個頭文件,并且鏈接C++庫或?qū)ο笪募?/p>
c++ MyClass.h
#ifdef __cplusplus
extern "C" {
#endifclass MyClass {
public:MyClass();void doSomething();
};#ifdef __cplusplus
}
#endif
MyClass.cpp
#include "MyClass.h"
#include <iostream>MyClass::MyClass() {// 構(gòu)造函數(shù)實(shí)現(xiàn)
}void MyClass::doSomething() {// 方法實(shí)現(xiàn)std::cout << "Doing something in C++ class" << std::endl;
}
C調(diào)用代碼
#include "MyClass.h"int main() {// 創(chuàng)建C++類的實(shí)例MyClass myObj;// 調(diào)用C++類的方法myObj.doSomething();return 0;
}
編譯
g++ -c MyClass.cpp -o MyClass.o
gcc -c main.c -o main.o
g++ -shared -o libMyClass.so MyClass.o
gcc main.o -L. -lMyClass -o main