这是“例外C++”项目24 (解决方案)的片段,是页面底部的第一个项目:
永远不要使用公共继承来实现“IS-几乎-A”。我见过一些程序员,甚至是经验丰富的程序员,公开地继承了一个基,并以一种保留基类语义的方式实现了覆盖的虚拟函数的“大部分”。罗伯特·马丁( Robert )经常引用的一个例子是,从矩形类继承正方形类的想法通常是错误的,“因为正方形就是矩形”。这在数学中可能是正确的,但在课堂上不一定是正确的。这是违反LSP的公共继承的一个很好的例子,因为派生类不能提供与基类相同的语义。它违反了公共继承的关
我开始使用Tkinter应用程序来处理类,但我似乎不理解类是如何工作的,尤其是父级与控制器之间的关系。正如您在下面的代码中所看到的,我计划为整个部分创建一个外部类,然后为该框架内的每个部分创建4个内部类。但是,我不能从初始框架调用这些类。有没有更好的方法来做到这一点?我到底做错了什么? class MainScreenFrameCenter(tk.Frame): tk.Frame.__init__(self,parent, bg="white"