gpt4 book ai didi

c++ - 对返回指针的 Getter 进行数组访问,这是不好的做法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:45 25 4
gpt4 key购买 nike

想象一下以下场景:

class A 
{
int a[50];
int* GetAPtr() { return a; };
};
...
A b;
if(b.GetAPtr()[22] == SOME_RANDOM_DEFINE) do_this_and_that();

这种访问被认为是不好的做法吗? b.GetAPtr()[22]

澄清我的情况:
1. 在这种情况下我不能使用 new/malloc,数组必须是静态的
2. 这意味着封装使用多个数组的旧 C 代码,这在其中非常方便
3. 我知道返回一个指针可能会返回一个NULL指针,这里不讨论这个问题

最佳答案

如果你真的需要这样的 const 表达式,你可以把它变成一个函数:

class A 
{
int a[50];
bool check_this_and_that() { return a[22] == SOME_RANDOM_DEFINE; };
};
...
A b;
if(b.check_this_and_that()) do_this_and_that();

魔数(Magic Number)通常很糟糕,但在类逻辑内部它更容易被原谅,外人不必看到这一点。

关于c++ - 对返回指针的 Getter 进行数组访问,这是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237072/

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