this post was submitted on 02 Sep 2024
882 points (99.2% liked)

Programmer Humor

32557 readers
406 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

Incase it doesn't show up:

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 2 months ago (2 children)

How do you implement an interface in C++ without an abstract class?

[–] [email protected] 3 points 2 months ago (1 children)

Ask Bjarne to add interfaces enough many times until he gives in.

On a more serious note, I’m not exactly sure what the best C++ practice is. I guess you just have to live with abstract classes if you really want interfaces.

[–] [email protected] 6 points 2 months ago (1 children)

An abstract class with no member variables serves the same purpose in C++.

[–] [email protected] 2 points 2 months ago (2 children)

The only problem is to ensure the entire team agrees to only use it like an interface and nothing else. But I guess that’s the only proper way to do it in C++, for now.

[–] [email protected] 3 points 2 months ago

That's not really the job of the language, though. If they can't read the design docs and source annotations, they don't really have any business touching anything.

[–] [email protected] 2 points 2 months ago

this seems like the only proper way to do anything in C++. it’s a language where there’s 5 ways to do 1 thing and 1 way to do 5 things.

[–] [email protected] 1 points 2 months ago (1 children)

I know at least three ways, one of them involves variadic macros.

You don't even need to look that far, take any sufficiently aged library, like OpenGL.

[–] [email protected] 1 points 2 months ago (1 children)
[–] [email protected] 2 points 2 months ago

Yet I still had an urge to explain an obvious thing. Because it's C++, so everyhing goes. There are even tools to auto-generate C++ interfaces, because of course someone decided that C++ is inadequate and must be improved using some kind of poorly-documented ad-hoc extension language on top of C++.