gpt4 book ai didi

c++ - 只调用其他类成员的类成员?

转载 作者:太空狗 更新时间:2023-10-29 23:07:32 25 4
gpt4 key购买 nike

给出:

#include <stdio.h>

class A
{
friend class B;
private:
void func();
} GlobalA;

void A::func()
{
printf("A::func()");
}

class B
{
public:
void func();
};

void B::func()
{
GlobalA.func();
}

int main()
{
B b;
b.func();
getchar();
}

所以实际上所有 B::func() 所做的就是调用 A::func(),有没有更好的方法来做到这一点?还是编译器在编译时直接调用 A::func()

约束条件:class A 创建线程并被多个其他类使用。它是一个用于管理套接字/管道的全局 IO 类,因此我认为任何类型的继承都不会顺利进行。

注意:如果这是一个可用 google 的问题,请告诉我,因为我没有搜索什么。

最佳答案

事实上 B.func() 做了一些更微妙的事情:

它不调用 A::func 而是调用 GlobalA.func() ,GlobalA 是类 A 的一个实例。

所以这里的 GlobalA 是一个单例(但以非常“原始”的方式表示为单个全局实例)

因此,无论您创建多少个 B 实例,它们都将始终调用同一个 A 实例 (GlobalA)。

关于c++ - 只调用其他类成员的类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565410/

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