gpt4 book ai didi

c++ - 异常成员类 OOP

转载 作者:行者123 更新时间:2023-11-27 23:45:22 27 4
gpt4 key购买 nike

我在生产代码中遇到了以下概念:

class A
{
public:
class Exception : public std::exception
{/* ... */};
//...
};

没有人能给我一个明确的答案,为什么会这样。我的问题是这种做法是否符合 SOLID 规则?我认为如果这个异常类位于类 A 之外并在创建 A 的实例时注入(inject)会更好。

最佳答案

当您说“在创建 A 的实例时注入(inject)”时,请注意 Exception 是一个类型,而不是一个对象。您不能同一类的实例中有不同的类型成员。

您可以在类模板(即不同的类)的不同实例化中使用不同的类型,但对于本示例,您不需要模板。

类具有内部类型是完全正常的。您将所有辅助定义收集到一个容器中。 std::map18 member types .在这方面,类名范围几乎与命名空间范围相同。

关于c++ - 异常成员类 OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51130008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com