gpt4 book ai didi

c++ - 我可以更改默认继承的访问器吗?

转载 作者:行者123 更新时间:2023-11-30 05:44:49 27 4
gpt4 key购买 nike

我明白public/protected成员受protected inheritance保护,private受private继承。但是我可以明确地将它们更改为 public (如下所示)吗?我其实不太明白“public: A::x”是什么意思......

    class A
{
public:
int x;
int y;
protected:
int z;
};

class B : protected A
{
public:
A::x;
};

class C : private B
{
public:
B::y;
B::z;
};

最佳答案

线

A::x;

是一个“访问声明符”,因此它确实允许您“使”继承的成员在派生类的 public 区域可见。它还用于使可见hidden overloaded functions .然而,它现在在 C++ 中已被弃用,因此请尝试使用

using A::x;

例子:

#include <iostream>

class Foo
{
protected:
int x{10};
};

class Bar : public Foo
{
public:
using Foo::x; // makes x "public" here
};

int main()
{
Bar bar;
std::cout << bar.x << std::endl;
}

关于c++ - 我可以更改默认继承的访问器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29614860/

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