是否可以组合C++;用什么语言? 我从一本书(专业C++版2)中听说,C++可以与许多语言结合,使用“外写< /代码>。例如: extern "Lua" { //Some code in Lua }; extern "Python" { //Some code in Python }; extern "C" { //Some code in C }; int main(int argc, char* argv[]){ //Some C++ code return 0; } 现在我知道你可以把C和ASM与C++结合起来,但是就像我之前说过的,我们可以使用更多的其他语言,如Lua、Python、PHP等等吗?或者它只适用于依赖C/C++的语言?

是否可以组合C++;用什么语言? 我从一本书(专业C++版2)中听说,C++可以与许多语言结合,使用“外写< /代码>。例如: extern "Lua" { //Some code in Lua }; extern "Python" { //Some code in Python }; extern "C" { //Some code in C }; int main(int argc, char* argv[]){ //Some C++ code return 0; } 现在我知道你可以把C和ASM与C++结合起来,但是就像我之前说过的,我们可以使用更多的其他语言,如Lua、Python、PHP等等吗?或者它只适用于依赖C/C++的语言?,c++,c++11,C++,C++11,我确实没有资格回答这个问题,但我会尽我所能 根据的文档,它提供了用不同编程语言编写的模块之间的链接 语言链接封装了与用另一种编程语言编写的模块链接所需的一组需求:调用约定、名称篡改算法等 这可能会导致人们相信,正如书中所声称的那样,可以通过使用 ExtNe>代码>将C++与许多其他语言结合起来。事实并非如此。编译器只真正支持“C”和“C++”。“C++”是默认值,“C”用于 链接到C语言编写的函数,并在C++程序中定义了可以从C.中的模块调用的函数。 这是因为C++是C的一个近亲,大多数C++编

我确实没有资格回答这个问题,但我会尽我所能

根据的文档,它提供了用不同编程语言编写的模块之间的链接

语言链接封装了与用另一种编程语言编写的模块链接所需的一组需求:调用约定、名称篡改算法等

这可能会导致人们相信,正如书中所声称的那样,可以通过使用<代码> ExtNe>代码>将C++与许多其他语言结合起来。事实并非如此。编译器只真正支持“C”和“C++”。“C++”是默认值,“C”用于

链接到C语言编写的函数,并在C++程序中定义了可以从C.</P>中的模块调用的函数。

这是因为C++是C的一个近亲,大多数C++编译器都知道如何编译C代码。 (实际上比这更复杂,看,还有)你也可以,尽管不是以便携的方式

<>这并不意味着其他语言不能与C++结合。例如,可以扩展Python,在那里你可以加载C++编写的模块,并且可以将Python嵌入C++中,其中C++程序调用Python解释器作为一个子程序。看见同样,您也可以,而且我相信可以嵌入许多其他脚本语言。关键是它不仅仅是使用
extern
,您需要用于特定目的的库,而嵌入每种不同的语言都有其独特的复杂性


至于这本书为什么提出这样的主张,也许你误解了,因为你可能误解了上面的文档片段?在任何情况下,任何一本C++书都会在这方面留下任何歧义,这可能不是一本很好的书。我很难想象你读任何其他的C++书籍,直到你读了所有的书。

< p>我真的没有资格回答这个问题,但是我会尽力做到最好。

根据的文档,它提供了用不同编程语言编写的模块之间的链接

语言链接封装了与用另一种编程语言编写的模块链接所需的一组需求:调用约定、名称篡改算法等

这可能会导致人们相信,正如书中所声称的那样,可以通过使用<代码> ExtNe>代码>将C++与许多其他语言结合起来。事实并非如此。编译器只真正支持“C”和“C++”。“C++”是默认值,“C”用于

链接到C语言编写的函数,并在C++程序中定义了可以从C.</P>中的模块调用的函数。

这是因为C++是C的一个近亲,大多数C++编译器都知道如何编译C代码。 (实际上比这更复杂,看,还有)你也可以,尽管不是以便携的方式

<>这并不意味着其他语言不能与C++结合。例如,可以扩展Python,在那里你可以加载C++编写的模块,并且可以将Python嵌入C++中,其中C++程序调用Python解释器作为一个子程序。看见同样,您也可以,而且我相信可以嵌入许多其他脚本语言。关键是它不仅仅是使用
extern
,您需要用于特定目的的库,而嵌入每种不同的语言都有其独特的复杂性


至于这本书为什么提出这样的主张,也许你误解了,因为你可能误解了上面的文档片段?在任何情况下,任何一本C++书都会在这方面留下任何歧义,这可能不是一本很好的书。我很难想象你读任何其他的C++书籍,直到你读了所有的C++书籍。

任何字符串文字都可以出现在 ExtNe>/Cuff>之后,但是编译器不必处理除<代码>“C”< /> >和<代码>“C++”< /> >之外的值。看见实际的实现比“接近所有”更接近“没有”。你可以从其他语言调用C或C++代码,但是不能通过 ExtLub语言< /C>机制,它基本上只支持<代码>外“C”<代码>。停止阅读该书。“带您进行C++和STL的技术巡演,并探索这种语言的异常和古怪的方面。“-不会激发信心。@DimChtz,当你说停止阅读那本书时,你知道OP指的是哪本书吗??”??!不要责怪这本书,因为有人可能会误解作者想要表达的内容。任何字符串文字都可以出现在
外部
之后,但编译器不必能够处理
“C”
“C++”
以外的值。看见实际的实现比“接近所有”更接近“没有”。你可以从其他语言调用C或C++代码,但是不能通过 ExtLub语言< /C>机制,它基本上只支持<代码>外“C”<代码>。停止阅读该书。“让你在C++和STL的技术巡演中,探索这种语言的不寻常和古怪的方面”——这并不能激发信心。@ DimChtz,当你说停止阅读这本书时,你知道OP指的是哪本书吗?!不要因为书中的作者误解了作者的意图而责备这本书。