c++语言示例180查找名字02

Posted 周三石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++语言示例180查找名字02相关的知识,希望对你有一定的参考价值。

名字空间 M {
// 整 i; // 找到第五个
名字空间 N {
// 整 i; // 找到第四个
X : B {
// 整 i; // 找到第二个
f();
// 整 i; // 也找到第二个
};
// 整 i; // 找到第四个
}
}
// 整 i; // 找到第六个
M::N::X::f()
{
// 整 i; // 找到第一个
i = 16;
// 整 i; // 找不到这个
}
名字空间 M {
名字空间 N {
// 整 i; // 找不到这个
}
}
 X {  f(); };
B1: X { f(); };
B2: X {};
D : B1, B2 {
() {
X::f(); // 好,调用了 X::f(有限定查找)
f(); // 好,调用了 B1::f(无限定查找)
// C++98 规则:B1::f 隐藏 X::f,因此即便从 D 通过 B2 可以访问到 X::f,
// 它也不能从 D 中的名字查找所找到.
// C++11 规则:在 D 中对 f 的查找集合并未找到任何东西,继续处理其基类
// 在 B1 中对 f 的查找集合找到了 B1::f,并且完成查找
// 合并时替换了空集,此时在 C 中 对 f 的查找集合包含 B1 中的 B1::f
// 在 B2 中对 f 的查找集合并未找到任何东西,继续处理其基类
// 在 X 中对 f 的查找找到了 X::f
// 合并时替换了空集,此时在 B2 中对 f 的查找集合包含 X 中的 X::f
// 当向 C 中合并时发现在 B2 的查找集合中的每个子对象(X)都是
// 已经合并的各个子对象(B1)的基类,因此 B2 的集合被丢弃
// C 剩下来的就是在 B1 中所找到的 B1::f
// (如果使用 构 D : B2, B1,则最后的合并将会*替换掉*
// C 此时已经合并的 X 中的 X::f,因为已经加入到 C 中的每个子对象(就是 X)
// 都是新集合(B1)中的至少一个子对象的基类,
// 其最终结果是一样的:C 的查找集合只包含在 B1 中找到的 B1::f)
}
};


以上是关于c++语言示例180查找名字02的主要内容,如果未能解决你的问题,请参考以下文章

C++如何实现递增字符串。就是输入一个字符(整行)然后以01 02

c++语言中的标准输入输出用cin和cout表示,请问名字中的'c'表示啥?

如何用visual studio 2010 写c++程序

如何用C语言来读取或查找一个文档里面的是信息。

C语言如何用数组存储一些中文名字,并且可以随机抽取一个名字输出

C语言试题180之实现实现字符串strcpy函数