gpt4 book ai didi

java - C++调用私有(private)成员函数

转载 作者:行者123 更新时间:2023-11-30 02:34:37 25 4
gpt4 key购买 nike

<分区>

我来自 Java,那里不允许减少派生类中的访问修饰符。例如,以下代码未在 Java 中编译:

public class A{
public void foo(){ }
}

public class B extends A{
@Override
private void foo(){ } //compile-error
}

但是,在 C++ 中没问题:

struct A {
A(){ }
virtual ~A(){ }
A(A&&){ }
public:
virtual void bar(){ std::cout << "A" << std::endl; }
};

struct B : public A{
private:
virtual void bar(){ std::cout << "B" << std::endl; }
};

int main()
{
A *a = new B;
a -> bar(); //prints B
}

DEMO

它在哪里有用?而且,这样做安全吗?

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