gpt4 book ai didi

c++ - 如何命名不同级别的相似方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:34 26 4
gpt4 key购买 nike

例如,我有两个方法 CreateNewDocument 和 OpenDocument,它们在我的 GUI 代码中处于两个不同的级别。一种是低级的,它只是做方法名所代表的事情;另一个是高级别,它将在执行所需工作之前检查现有文档可能未保存的部分。低级名称出现在高级代码中,因为它们被调用以实现高级方法。我的问题是如何区分它们以免混淆用户和读者?下面请细看图解代码。

class GuiClass
{
public:
// Re-implement to tell me how to do the low-level create new document.
virtual void LowLevelCreateNewDocument();

// Then I do the high-level version for you.
void HighLevelCreateNewDocument()
{
// Handle unsavings and blabla...
...
// Then do the low-level version
LowLevelCreateNewDocument();
// Afterward operations
...
}
};

最佳答案

我会将那个“低级”CreateNewDocument()方法设为 protectedprivate,因为它看起来应该只分别从该类或派生类中的其他类成员调用。

class GuiClass
{
public:
// Then I do the high-level version for you.
void CreateNewDocument()
{
// Handle unsavings and blabla...
...
// Then do the low-level version
CreateNewDocumentInternal();
}

protected:
//pure virtual to enforce implementation within derived classes.
// |
// V
virtual void CreateNewDocumentInternal() = 0;
};

class GuiClassImpl : public GuiClass
{
protected:
/*virtual*/ void CreateNewDocumentInternal()
{
//Do the low-level stuff here
}
};

如果这些方法确实处于不同的实现级别,请考虑将它们放入不同的类或命名空间中,正如已经建议的那样。对于必须实现纯虚拟、 protected 成员函数的子类,您已经拥有适当的封装。

关于c++ - 如何命名不同级别的相似方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448930/

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