gpt4 book ai didi

c++ - using-declaration 不能在函数范围内重复。这是为什么?

转载 作者:IT老高 更新时间:2023-10-28 22:05:27 24 4
gpt4 key购买 nike

在 [namespace.udecl]/10 中有以下示例:

namespace A {
int i;
}
namespace A1 {
using A::i;
using A::i; // OK: double declaration
}
void f() {
using A::i;
using A::i; // error: double declaration
}

这段代码在 clang 中编译。

最佳答案

第一个是命名空间内的声明,多个 using 语句可能经常使用 #includes 发生。第二个是在函数的定义中,除非你犯了错误,否则你永远不会这样做。例如,您也不能将同一个符号定义两次,但可以声明多次。

using 语句也不仅仅是一个声明。它更强大一些,因为它将一个函数从一个命名空间导入到另一个命名空间。例如,它可以将 protected 基类成员函数拉入派生类,使其公开。这几乎是链接的定义。

关于c++ - using-declaration 不能在函数范围内重复。这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221990/

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