问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

object c语言与C++的比较

发布网友 发布时间:2022-04-21 01:36

我来回答

2个回答

热心网友 时间:2023-11-03 07:02

单一继承:Objective-C不支持多重继承,(同Java和Smalltalk),而C++语言支持多重继承。
动态:Objective-C是动态定型(dynamicaly
typed)所以它的类库比C++要容易操作。Objective-C
在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。
C++
跟从面向对象编程里的Simula67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。
在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objecive-C来说,由动态类型来决定。Simula
67学派更安全,因为大部分错误可以在编译时查出。而Smalltalk学派更灵活,比如一些Smalltalk看来无误的程序拿到Simualr
67那里就无法通过。从很多方面来看,C++和Objective-C的差别,与其说时技术上的,不如说是思维方式上的。
常用的系统快捷键:复制、粘贴
、剪切option+c,Option+V,Alt+table,Option+N,Shift+Option+N
内核环境:主要由Mach和BSD组成,但它同时也包括了网络协议栈、网络服务、文件系统和设备驱动程序
//声明类
@interface
Fraction:
Object
{
int
numerator;
//实例变量
int
denominator;
}
-(void)
print;
//实例方法
instance
method
-(void)
setNumerator:
(int)
n:
(int[U1]
)m;
//带参数的成员函数
-(void)
setDenominator(int)n;
+(void)
makeNumber;
//类方法
class
method,有点static的味道
@end
//实现类
@implementation
Fraction;
-(void)
print
{
printf
("
%i/%i
",
numerator,
denominator);
}
-(void)
setNumerator:
(int)
n:
(int)m
{
numerator
=
n;
Denominator
=
m;
}
-(void)
setDenominator:
(int)
d
{
denominator
=
d;
}
+(void)
makeNumber{}
@end
//使用类:选择“Command
Line
Utility”中的“FoundationTool”项
#import<Foundation/Foundation.h>
#import
“Fraction.h”
int
main
(int
argc,
char
*argv[])
{
NSAutoreleasePool
*pool
=
[[NSAutoreleasePool
alloc]init];
//
Fraction
*myFraction
=
[[Fraction
alloc]
init];
Fraction
*myFraction;
//定义指针Fraction对象
myFraction
=
[Fraction
alloc];//分配内存
myFraction
=
[myFraction
init];
//初始化
[myFraction
setNumerator:
1:3];
[myFraction
setDenominator:
3];
printf
("The
value
of
myFraction
is:");
[myFraction
print];
printf
("\n");
[myFraction
free];
//insert
code
here...
NSLog(@"Julia
is
a
pretty
actress");
[pool
release];]
return
0
}

热心网友 时间:2023-11-03 07:02

两者都是C语言的衍生,但C++完全不支持Objectice C,Objectice C仅仅支持部分C++特性(比如mm文件直接定义及实现类、函数指针等)。
Objective C在效率上比C++差一些(因为支持类反射,这样一来会有差距,而C++在这方面做得比较好),而且有些高级语言的底层支持C++(比如JNI)不支持Objectice C,导致Objectice C完全没名气。而且Objectice C因为好多API完全闭源也导致了现在也完全不能与主流的C++、Java、C#、VB等语言相提并论。
Objectice C应用的兴起也是2008年iPhone发布以后的事了。不过在这个硬件制造性能大幅提升的时代,C++的一些缺陷渐渐被性能稍差但比一些高级语言效率要好的Objectice C有所取代(因为它的内存还是手工管理的)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
问道 职业 选择 降坡泥紫砂壶泡什么茶 生肖龙年份对照表年龄属龙的年龄表2021年多大 windows10无法访问指定设备怎么办 windows10无法访问指定设备解决方法介 ... 2024年最新手机性能排行榜Top10及其(揭秘当今最强大的智能手机) 2024年3000元荣耀手机性价比排行榜TOP5|荣耀3000元手机推荐|最新... 清徐县房地局内设办公机构及其工作职责 清徐县房地局简介 5s管理如何持续提升 如何客观评价曾国藩这个人? 手机爱奇艺怎么互传电影 博世壁挂炉n1p31-wbn6000-28hrns5500的功能 ns热血三国志怎么双人 阿根廷巨鹰能举起多重的猎物飞行? matlab f=smpsns_fxy(f,x,c,d,N) 我们能测量先驱匾上的符号有多容易理解吗? 小白跪求组装电脑配置~~~~ 求价键理论近年的进展 在OC里 怎么定义一个byte数组 高尔夫球杆有多重? 2.1A的充电宝能给NS充电吗 multiple response是什么意思 如何合理使用单一形状固定循环和多重复合循环? 你好,请问下1cup等于多少毫升和多少克。 多重分形统计学特征 多重耐药英文缩写是什么? NS110Q多重 一个人微信聊天老给别人发红嘴唇,骂他无聊他生气吗? 微信怎样把好友加到通讯录里面? 微信是什么软件? object-c的优点及缺点 急求翻译~~~~~~~~~~~~~~~~~~~~ 电缆圆盘支架一个多重? 党员大会关于某人党内严重警告处分决定会议记录怎么写 谁知道党员恢复党组织关系、解除违纪处分的党支部会议记录应该怎么写?在线等。。。。。 纪委在调查党员的时候可以向外泄露吗? 党支部书记实用手册的目录 天津市水务局的内设机构 云南纪委省监察厅网站通报扶贫领域多起违规违纪问题都有哪些人? 《党政领导干部选拔任用工作责任追究办法(试行)》规定,有哪些情形的,追究有关领导干部和人员的责任? 纪检监察公文写作的相关知识 党风廉政建设要签字背书怎么弄 机关监察室职能、工作流程 蚌埠市住房公积金管理中心的内设机构职责 青岛市国家税务局的内设机构 报考选调生需要什么条件? 公务员遴选报名条件有哪些? 国家体育总局的工作规则 大连市地方税务局的工作成就 海南省人民检察院的机构设置