gpt4 book ai didi

c++ - C++ 类函数能否判断自上次调用以来类成员对外部类的引用是否已更新?

转载 作者:行者123 更新时间:2023-11-27 22:57:26 25 4
gpt4 key购买 nike

假设我有两个类:

A 类:

class A
{
private:
int _i;
public:
A(int i){_i=i;}
void update(int t){_i=t;}
friend class B;
};

B 类:

class B
{
private:
A &_a;
public:
void respond();
B(A &);
};

B::B(A & a)
:_a(a)
{}

void
B::respond()
{
/*
if (a._i has been updated after last call of B::respond)
{
do something
}
else
{
do nothing
}
*/
}

有没有办法在 C++/C++11 中实现 B::respond() 中描述的任务? _i被指针替换,B::respond()需要响应指针的内容怎么办?

请注意,我无法修改类 A

最佳答案

有两种方法可以实现:

  1. B::respond() 函数中保存 a._i 的值,并在下一个 B::respond() 中与该值进行比较 调用。
  2. 在调用A::update 时设置一些内部标志。调用 B::respond() 时,检查该标志并将其取消设置。

关于c++ - C++ 类函数能否判断自上次调用以来类成员对外部类的引用是否已更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31349130/

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