奇思妙想

2024年 4月 18日

const描述符可修饰全局函数吗?

C++可以用const修饰成员函数,表示成员函数不会修改任何类成员,这是安全的编码习惯。注意,这仅仅适用于类的成员函数,如果是形如C语言的全局函数,是不可以用const修饰。但,const可以修饰函数...

进一步了解
2024年 4月 18日

ObjC支持函数重载吗?

不管是C89/C99还是C11,都不支持函数重载。ObjC遵循C标准,全局函数默认也不支持重载。但是,类成员方法名称可以加标签label, ObjC可利用label实现"重载",如下。 注意,如果只有...

进一步了解
2024年 4月 18日

static成员变量的本质

面向对象编程语言喜欢将全局变量转移到类内部变成static变量,看起来不像全局变量。事实上,编译器会将static成员变量和全局变量看做的一样的,编程语言的写法减少程序员随意操作全局变量的可能,虽然事...

进一步了解
2024年 4月 18日

ObjC类方法默认权限是public

很少有面向对象编程语言将类方法默认权限为public,大部分是private,有一些根据方法名开头大小写决定是否public. ObjC的设计哲学更像是只要显式声明的,那一定是希望别人用,如果不想让别...

进一步了解
2024年 4月 18日

为什么会有头文件循环依赖?

有头文件的编程语言体系中,头文件的本意是给其他文件提供基本的类型、声明或者宏等讯息供参考,让编译器知晓这些类型讯息。一般的原则是,越是common的头文件会被其他头文件依赖,即xxx.h很可能会包含c...

进一步了解