gpt4 book ai didi

c++ - C++ 中有没有一种方法可以将一个类的接口(interface)呈现给所有类,除了少数几个?

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:47 24 4
gpt4 key购买 nike

我正在编写一个 B-link 树及其附属子类,如数据页类和节点类等。

我想知道是否有一种方法可以保护节点和页面的公共(public)接口(interface),以便只有 b-link 树类本身可以访问它们,而不会同时将页面和节点的私有(private)方法暴露给 b-link类(class)?

IE 我已经考虑过简单地将页面和节点的“公共(public)”接口(interface)更改为 protected 类别,然后将 B-link 树声明为 friend ,但这使 b-link 树可以访问我的私有(private)方法想保持私密。

最佳答案

在我的脑海中,你可以做这样的事情:

class FooAdapter;

class Foo
{
private:
void funcToExpose();
void funcToHide();
friend FooAdapter;
};

class FooAdapter
{
private:
Foo foo;
void funcToExpose() { foo.funcToExpose(); }

friend SomeFriend;
};

(未经编译或测试,但您应该明白了。)

关于c++ - C++ 中有没有一种方法可以将一个类的接口(interface)呈现给所有类,除了少数几个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638996/

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