gpt4 book ai didi

c++ - protected 方法在c++中继承时可以成为私有(private)方法吗?

转载 作者:行者123 更新时间:2023-11-28 01:22:14 25 4
gpt4 key购买 nike

<分区>

我一直在玩继承,我试过这段代码:

#include <iostream> 
#include <string>

class Foo
{
public:
virtual void func() = 0;

protected:
virtual void doSum() const = 0;
};

class Bar : public Foo
{
public:
void func() {
doSum();
}

protected:
void doSum() const
{
std::cout << "hi, i'm doing something" << std::endl;
}
};

int main()
{
Foo* ptr = new Bar();
ptr->func();

return 0;
}

所以我也尝试用 private 替换 class Bar 中的 protected 关键字,如下所示:

private:
void doSum() const
{
std::cout << "hi, i'm doing something" << std::endl;
}

并且代码恰好可以正常工作...

所以我的问题是,如果我在实现派生类时将 protected 方法声明为private,有什么区别吗?如果有,它们是什么?我什至可以这样做吗?

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