gpt4 book ai didi

c++ - 'using' 关键字与多个重载

转载 作者:行者123 更新时间:2023-12-03 18:52:01 25 4
gpt4 key购买 nike

我一直在阅读如何使用using-declaration并且想知道当我有多个重载时发生了什么。在给定的示例中,看起来好像这就是全部或全部,还是只能在范围内提取某个签名?
假设我有以下类(class):

class A
{
public:
void function(int value);
void function(double value);
void function(const char *value);
};


class B : public A
{
public:
using A::function;
void function(uint64_t value);
};
现在在 class Busing关键字,我将基类成员引入我的类命名空间。但这意味着现在所有这些都可用,对吗?或者我也可以指定签名,因为我只想介绍其中之一,而不是全部。从给出的例子来看,我预计不会。因此,在这种情况下,我必须将此类函数的声明移至 protectedprivate禁止访问它,对吧?

最佳答案

要么全有要么全无,你不能只选择特定的重载。

I would have to move the declaration of such a function to protected or private to disable access to it, right?


这行不通。如果您甚至将其中一些移动到 private ,然后 using A::function;显然会导致错误。
如果你制作它们 protected ,它不会做任何事情,因为 using ...改变你给它的名字的访问级别(即如果 usingpublic ,继承的函数也变成 public )。

关于c++ - 'using' 关键字与多个重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66771436/

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