我正在学习WxWidgets,我在第30页的Cross-Platform GUI Programming with wxWidgets中找到了以下代码:
class MyFrame : public wxFrame
{
public:
// Constructor
MyFrame(const wxString& title);
// Event handlers
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
private:
};在C++类的末尾编写private有什么特殊的意义吗?
发布于 2021-01-12 14:06:27
我认为这只是一个编码风格或编码规则或习惯的问题。
阅读this C++ reference和一些C++标准草案,例如n3337。
在您的特定情况下,private:是无用的,因为在它之后class中没有任何内容。
但是wxWdigets的未来贡献者马上就知道应该在哪里添加未来的私有成员函数。
发布于 2021-01-12 14:08:19
不,没有什么特别的意思。它显式地表示该类不包含私有数据或方法。您可以考虑使用struct代替class,并跳过public:和private:语句。
发布于 2021-01-12 14:25:47
您在当前表单中发布的代码中的private关键字根本没有任何作用。即使类有一些私有成员,编写private也是可选的,因为除非另有说明,否则类成员都是私有的。
但是,将类的公共部分放在最上面是一种很好的做法。原因在于,查看头文件的人很可能是对它的公共接口感到好奇。因此,将public放在顶部对于可读性很有用。
在这种特殊情况下,类的作者将private放在那里,以提醒此文件的未来作者遵循前面提到的风格,例如公共优先。
https://stackoverflow.com/questions/65678732
复制相似问题