为了设计我的代码,我正在绘制一些 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 个类之间的关系?
为了测试我的 C++ 项目,我使用 GoogleTest 框架。通常我可以使用以下语法来轻松调试故障:
EXPECT_TRUE(*statement*) << *debugMessage*;
Run Code Online (Sandbox Code Playgroud)
当我使用宏 EXPECT_NO_THROW (或 ASSERT_NO_THROW)时,我当然可能会这样做,但我无权访问宏本身内部抛出(和捕获)的异常对象,因此 debugMessage 无法告诉我任何有关它的信息。
是否可以以任何方式显示有关此异常的信息?
编辑
没有任何自定义函数/宏是不可能的。