gpt4 book ai didi

c++ - Objective-C 是否存在 C+ +'s "const 方法的近似值?

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:41 25 4
gpt4 key购买 nike

想知道在 Objective-C 中是否有任何公认的近似 C++ 的“常量方法”的做法。 (来自 C/C++ 背景的语言新手)

例如:

class Foo {
public:
void canChangeMemberVars(void);
char* asString(void) const;
};

"asString()"得到一个 const this 指针,所以即使你变得无赖并决定与实例的成员混在一起,它也不会起作用。对于我编写的库,从文档的角度来看,我发现将方法标记为 const 非常有用。

我正在编写一个 Objective-C 类库,发现自己希望能够使特定方法成为常量,并且想知道是否有任何语言技巧可以实现这一点。

总结:

归根结底,在可变和不可变版本中实现与因子类类似功能的唯一方法是什么?就我的目的而言,在每种方法的注释中做一个简单的注释是不够严格的。

最佳答案

是的,如果你想要一个有时可以改变有时不能改变的类,你唯一的选择是制作该类的可变和不可变版本。您会注意到 Apple 在 Cocoa 中就是这样做的(NSArray、NSSet、NSDictionary、NSString 等)——遵循 Apple 的惯例通常是最好的方法。

Objective-C 甚至没有const 对象的概念。即使您确实声明了一个对象指针 const,这也不会阻止您在设置变量的对象上调用方法。

关于c++ - Objective-C 是否存在 C+ +'s "const 方法的近似值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3868106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com