3 ms·
Do you really want to create an interface for every possible place where you'd use `private` though?
by ctxc 1y ago
Do you really want to create an interface for every possible place where you'd use `private` though?
- WorldMaker 1y agoRight, even if it is just syntactic sugar for a "pure" dual of `interface` as the article posits, syntactic sugar still has advantages/merit in many scenarios.
- ctxc 1y agoExactly. Ime most classes are not designed to be inherited but want to expose a clean public API. While true that all classes can be inherited, treating _all_ classes with the assumption that they will be would just lead to a labyrinth of code.
- coderjames 1y ago> most classes are not designed to be inherited but want to expose a clean public API. > While true that all classes can be inherited That's what the 'final' keyword in C++ is for: https://en.cppreference.com/w/cpp/language/final.html https://en.cppreference.com/w/cpp/language/final.html "Specifies that a virtual function cannot be overridden in a derived class, or that a class cannot be derived from."
- WorldMaker 1y agoC# and Java both have `sealed` for that, too.
- throwaway2037 1y agoNitpick: It is called "final" in Java, but your point stands. As I understand, C++ borrowed their "final" keyword from Java/C#. I'm not trolling when I write that last sentence. That is something that has really changed about C+ since the C++-11 committee was started -- and continues. When people write language / library proposals, they now regularly survey the landscape and talk about their experiences with other languages / libraries.
- WorldMaker 1y agoTechnically Java has both `final` and `sealed`, and the distinction between the two is complicated, but `sealed` is the more powerful/capable/adjustable of the two. But the rest of your point stands and it does seem useful that C++ is paying more attention to the large ecosystems of its descendant languages and other relatives.
- throwaway2037 1y agoHoly shit: I stand corrected about sealed keyword in Java! It was added in Java 17. <Hat tip>
- orwin 1y agoIdeally, yes in my opinion. In the real world, I don't have time to design my code that well.