C++在普通C中实现

Sek*_*eki 5 c c++ compiler-construction implementation

我已经多次读过早期的C++编译器在编译之前将第一个C++代码翻译成普通的C(或者可能需要第三方C编译器).

使用语法/语言/编译字段,我很想知道C++是如何在普通C中实现的,尤其是可以实现类继承和[虚拟]方法调用的一种方法.

你能指点我现在仍然可用的编译器吗?

我知道可以使用结构和函数指针在纯C中模拟/模拟OO代码,但我希望在C中看到C++语言的实际实现.

Jan*_*ann 5

你可以尝试cfront.您可以在此处下载旧版本.但它只支持非常有限的C++子集.像异常这样的某些功能无法以这种方式实现.

更新: 正如Maxim Yegorushkin所说,可以使用setjmp/longjmp实现异常.但是,如果我没记错的话,异常无法在C++中实现为库.它们必须是核心语言的一部分.