假设有一个 Foo 类,例如
class Foo {
public:
void bar();
operator bool() const { return true; }
};
那么我们可以做
if(Foo foo = Foo())
{
if(Foo foo = Foo())
{
foo.bar();
}
}
现在我无法掌握这里发生的范围解析(我预计重新声明 foo 会出现编译器错误)。
我希望 foo.bar() 在第二个 foo 上执行(其范围“更接近”),但我是否可以保证它实际上是与第一个 foo 不同的对象?此外,它们是否各自独立地放置在各自 if 块的末尾(称为它们的析构函数)?
C++ 非常乐意您声明一个具有相同名称的变量,只要它位于嵌套作用域内,这样就不会产生歧义。
我希望 foo.bar() 在第二个 foo 上执行(其范围“更近”)
你是对的
但我能保证它实际上是与第一个 foo 不同的对象吗?
Yes
此外,它们是否各自独立地放置在各自 if 块的末尾(称为它们的析构函数)?
Yes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)