我尝试编写一个继承自真实类的内部类进行测试。内部类复制临时变量在类之间传递。
示例:
#include <iostream>
#include <random>
class Internal_a;
class A {
public:
A() {}
const int test() const { return std::rand() % 10; }
private:
friend class Internal_a;
};
class Internal_a : public A {
public:
int test() {
_val = A::test();
return _val;
}
int _val;
};
class C {
public:
C(const A& a) { _x = a.test() * 2; }
private:
int _x;
};
int main() {
Internal_a i_a;
C c(i_a);
std::cout << i_a._val << "\n";
}
问题:
在构造i_a._val
对象期间,c
值不是A :: test()结果的副本。这是因为继承不会那样工作(好吧,我刚学会了。)
如何编写检查临时值(A::test()
)的测试?