gpt4 book ai didi

c++ - 使用虚函数访问私有(private)函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:34 24 4
gpt4 key购买 nike

如何避免使用基类虚函数间接调用私有(private)函数。

class baseclass{
public:
virtual void printmynumber() = 0;
};

class derivedclass : public baseclass
{
private:
int m_mynumber;
void printmynumber()
{
cout << m_mynumber << endl;
}
public:
derivedclass(int n)
{
m_mynumber = n;
}
};


void main()
{
baseclass *bObj = new derivedclass(10);
bObj->printmynumber();
delete bObj;
}

如何避免私有(private)函数的调用?

最佳答案

你不能。

void printmynumber()baseclass 的公共(public) API 的一部分,因此也是 derivedclass 的一部分。如果您希望 derivedclass::printmynumber() 不公开,也许 derivedclass 不应该继承自 baseclass

正如评论中所建议的,这违反了 Liskov substitution principle : L in SOLID .

关于c++ - 使用虚函数访问私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54373684/

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