C++ 编写保存类之间传递的临时值的测试

C++ 编写保存类之间传递的临时值的测试,c++,inheritance,testing,C++,Inheritance,Testing,我尝试编写一个从真实类继承的内部类进行测试。内部类复制类之间传递的临时变量 例如: #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 Inter

我尝试编写一个从真实类继承的内部类进行测试。内部类复制类之间传递的临时变量

例如:

#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";
}
#包括
#包括
甲级;
甲级{
公众:
A(){}
const int test()const{return std::rand()%10;}
私人:
友人班;
};
类内部_a:公共a{
公众:
int test(){
_val=A::test();
返回值;
}
国际价值;
};
C类{
公众:
C(常数A&A){ux=A.test()*2;}
私人:
int_x;
};
int main(){
内部审计;
C(i_a);;

std::你能使
A::测试
虚拟吗?@aschepler在某些情况下,我可以使
A::测试
虚拟。但在其他情况下,事情必须快速,我尽量避免
虚拟
。你可以为
A
提供兰德引擎(可以在测试中模拟)。