编写测试,保存在类

时间:2017-02-16 22:40:13

标签: 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 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())的测试?

0 个答案:

没有答案