小编San*_*osy的帖子

如何在 UML 中表示共享对象?

为了设计我的代码,我正在绘制一些 UML 类图。我有一些共享对象,我想知道应该如何绘制这些对象,因为这些对象的所有权确实是共享的。更具体地说,这里是正在发生的事情的 C++ 示例:

class A
{
public:
  A(){
    std::shared_ptr<CSharedObj> sharedObj = std::make_shared<CSharedObj>;
    mB = B(sharedObj);
  }
private:
  B mB;
};

class B
{
public:
  B(std::shared_ptr<CSharedObj>);
private:
  std::shared_ptr<CSharedObj> mSharedObj;
};

class CSharedObj
{
public:
  CSharedObj();
};
Run Code Online (Sandbox Code Playgroud)

我如何在类图中表示这 3 个类之间的关系?

uml class-diagram object shared-objects shared-ptr

6
推荐指数
1
解决办法
2359
查看次数

我可以知道 gtest EXPECT_NO_THROW (或 ASSERT_NO_THROW)内抛出了哪个异常吗?

为了测试我的 C++ 项目,我使用 GoogleTest 框架。通常我可以使用以下语法来轻松调试故障:

EXPECT_TRUE(*statement*) << *debugMessage*;
Run Code Online (Sandbox Code Playgroud)

当我使用宏 EXPECT_NO_THROW (或 ASSERT_NO_THROW)时,我当然可能会这样做,但我无权访问宏本身内部抛出(和捕获)的异常对象,因此 debugMessage 无法告诉我任何有关它的信息。

是否可以以任何方式显示有关此异常的信息?

编辑

没有任何自定义函数/宏是不可能的。

c++ testing automated-tests exception googletest

5
推荐指数
1
解决办法
6865
查看次数