2024年 4月 16日
奇思妙想
2024年 4月 15日
ObjC为什么能实现动态消息传递?
乍看ObjC的消息传递,和普通函数调用没什么区别。Objective-C 利用了其运行时系统(Runtime System)来实现动态消息传递。运行时系统是 Objective-C 的一部分,它允许在...
2024年 4月 15日
2024年 4月 15日
2024年 4月 15日
面向对象鼻祖Simula的诞生
Simula 是一种早期的高级编程语言,它对后来的编程语言产生了深远的影响,特别是在面向对象编程(OOP)方面。Simula 的设计者是挪威计算机科学家奥利·约翰·达尔(Ole-Johan Dahl)...
2024年 4月 15日
Smalltalk语言是何物?
Smalltalk语言的前身可以追溯到Flex系统,这是由Alan Kay最早提出的。在随后的发展中,Smalltalk逐渐演化,并出现了Smalltalk-72和Smalltalk-76等版本。最终...
2024年 4月 15日
Simula和Smalltalk有什么区别?
这两者都比C语言诞生还早,它们都是对面向对象编程语言研究的产物。Simula更静态,倡导编译期决定,因此C++和Simala更亲近,而Smalltalk更注重消息动态发送,不在乎编译期是否绑定,在此思...
2024年 4月 15日
头文件并不是编译单元?
经常写C/C++代码的人,会注意到,编译器提示的日志基本不会包含.h的编译,除非是.h有报错才会提示.h的讯息。这是因为,C/C++的编译单元是源代码.c或.cpp, 而非.h. .h只是辅助.c/....
2024年 4月 15日
如何包含头文件最多只有一次?
早期,标准的C语言采用#ifndef/#define的模式让头文件永远只能被包含一次,避免重复。事实上,这种写法更多是利用了条件编译宏,如果不小心将不同头文件用了同一个宏判断,会出现稀奇古怪的错误。O...