gpt4 book ai didi

c++ - 使变量在特定范围内不可访问,可能吗?

转载 作者:太空狗 更新时间:2023-10-29 19:51:35 25 4
gpt4 key购买 nike

有没有办法禁止对特定范围内的变量的所有访问?

它的用法可能与此类似:-

int outerOnly=5; //primitive or class or struct, it can also be a field
outerOnly=4; //ok
{//vvv The disable command may be in a block?
disable outerOnly; //<--- I want some thing like this.
outerOnly=4; //should compile error (may be assert fail?)
int c=outerOnly; //should compile error
}
outerOnly=4; //ok

如果答案是否定的,有没有最接近这个的特征?

在一些调试的情况下会有用。
编辑:例如,我确信某个范围(也太独特而不能成为一个函数)永远不应该访问某个变量。

最佳答案

考虑实现这样的东西(可能使用删除的复制构造函数和赋值运算符):

struct disable
{
private:
disable(const disable&) = delete;
disable& operator=(const disable&) = delete;
public:
disable() {}
};

然后,放置

disable outerOnly;

在内部范围内几乎会导致所需的错误。

不过请记住,正如 @Cornstalks 评论的那样,它可能会导致与阴影相关的编译器警告(反过来,通常可以根据具体情况禁用)。

关于c++ - 使变量在特定范围内不可访问,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203874/

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