c++与c互相调用

来源:互联网 发布:3d肌肉软件 编辑:程序博客网 时间:2024/05/16 07:08

c++类头文件

#ifndef MAN_H
#define MAN_H
class Man
{
public:
    Man();
    ~Man();
    void eat();
};
#endif // MAN_H
c++类源文件

#include "man.h"
#include <stdio.h>
Man::Man()
{
    printf("man created\n");
}
Man::~Man(){
    printf("man freed\n");
}
void Man::eat(){
    printf("man eat\n");
}
extern "C"{
  void test();
}
void test(){
//    Man *man=new Man();
//    man->eat();
    Man man;
    man.eat();
}
c头文件

#ifndef C_H
#define C_H
extern void test();
void ctest();
#endif // C_H
c源文件

#include "c.h"
void ctest(){
    test();
}
测试入口main.cpp

#include <iostream>
extern "C"{
#include "c.h"
}
using namespace std;
int main(int argc, char *argv[])
{
    cout << "Hello World!" << endl;
    ctest();
    return 0;
}
测试结果:

Hello World!

man created

man eat

man freed

原创粉丝点击