← Back to archive

Stdle #63 · virtual · 2026-08-08

What does this C++ snippet output?

A past puzzle — fully playable. 4 attempts, hints on wrong guesses.

#include <iostream>
struct Shape { virtual int sides() = 0; };
struct Triangle : Shape { int sides() override { return 3; } };
struct Pentagon : Shape { int sides() override { return 5; } };
int main() {
Shape* shapes[] = { new Triangle(), new Pentagon() };
int total = 0;
for (auto s : shapes) total += s->sides();
std::cout << total << "\n";
for (auto s : shapes) delete s;
}
Virtual
4 attempts left

Answer & explanation