gpt4 book ai didi

C++——我们为什么要在此构造函数中使用 explicit?

转载 作者:太空狗 更新时间:2023-10-29 19:37:38 42 4
gpt4 key购买 nike

请引用Wikipedia:Strategy Pattern (C++)

class Context
{
private:
StrategyInterface * strategy_;

public:
explicit Context(StrategyInterface *strategy):strategy_(strategy)
{
}

void set_strategy(StrategyInterface *strategy)
{
strategy_ = strategy;
}

void execute() const
{
strategy_->execute();
}
};

为什么对 Context 的构造函数使用 explicit 是一个好习惯?

谢谢

最佳答案

因为通常使用 explicit 是个好主意,除非您真的想要允许隐式转换。由于您不太可能在真正从隐式转换中获得任何好处的情况下使用 Context 对象,因此最好将其设为显式

关于C++——我们为什么要在此构造函数中使用 explicit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121429/

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