正如标题所说...它们被认为是不同的编程语言吗?例如,如果你使用C++和Objective-C++组合编写了一个应用程序,你会认为它是用C++和Objective-C、C++和Objective-C++还是全部三种语言编写的呢?
显然,尽管C++和C是直接兼容的,但它们是两种不同的编程语言,那么Objective-C++和Objective-C的情况又如何呢?
正如标题所说...它们被认为是不同的编程语言吗?例如,如果你使用C++和Objective-C++组合编写了一个应用程序,你会认为它是用C++和Objective-C、C++和Objective-C++还是全部三种语言编写的呢?
显然,尽管C++和C是直接兼容的,但它们是两种不同的编程语言,那么Objective-C++和Objective-C的情况又如何呢?
Objective-C++是GNU编译器集合的前端,可编译使用C++和Objective-C语法组合的源文件。Objective-C++在C++中添加了Objective-C在C中添加的扩展功能。由于没有统一各种语言特性背后的语义,因此会应用某些限制:
Objective-C++简单地允许混合使用Objective-C和C++代码(但有一些限制)。它并不是一个独立的语言,而是一种机制,允许这两种语言相互混合。
C和C++并不是直接兼容的。两者都不是彼此的超集(尽管大多数的C是有效的C++)。Objective-C是C的严格超集,而Objective-C++是C++的严格超集。这些是你可以做出的唯一陈述(除了微不足道地反转它)。
#include <map>
@interface MyClass : NSObject {
@private
std::map<int, id> lookupTable;
}
// ...
@end
在不了解您想应用的“不同语言”的定义的情况下,很难自信地回答这个问题。
Objective-C是C的超集:它在C语言的基础上添加了一些额外的语法。Objective-C++以同样的方式是C++的超集。
C和C++实际上是不同的语言。尽管C++被设计为兼容,但有些C不是有效的C++,反之亦然。
因此,我会说,是的,Objective-C++是与Objective-C不同的语言,因为C++与C是不同的语言。但是,我不会称它们是完全不同的。
Objective-C 可能是您在简历中使用的官方术语。
Objective-C++ 并不是一个全新的语言,它只是指定了一些允许 Objective-C 代码与 C++ 代码共存的东西。说您的应用程序是用 Objective-C 和 C++ 编写的或仅使用 Objective-C++ 是您想要的。将所有 Objective-C、Objective-C++、C++ 放在一起是多余的。