首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在测试中使用友谊

在测试中使用友谊
EN

Stack Overflow用户
提问于 2016-07-21 09:53:41
回答 1查看 25关注 0票数 1

我正在寻找一种“干净”的方法来访问测试上下文中的一些私有成员变量,而不触及原始代码。我正在考虑用测试类实现一个友谊关系,但出于某种原因,我不理解它仍然需要一个保护的访问器才能工作。为什么是那样的?是否有其他方式访问私有成员变量?

代码语言:javascript
复制
class A
{
protected:    // this works
// private:   // this DOES not work


    int a;
};

class TestableA : public A
{
    friend class TestA;
};

class TestA
{
    void test()
    {
        m_a.a = 100;
    }

    TestableA m_a;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 09:56:04

不能从派生类访问私有变量,只能访问保护。

TestATestableA的朋友,所以它可以看到TestableA包含的所有内容。但是如果a是私有的,则不能在TestableA中访问它。

你有几种选择:

  • 在任何地方使用保护
  • 将朋友声明直接添加到类A中。您甚至可以使用宏执行此操作,而宏只会影响调试/测试生成。

有关此主题的更多信息,有一个名为服务于测试的友谊的很好的演示文稿

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38500865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档