Ho già fatto questa discussione altre volte in questo forum.
Premetto che ho fatto anche l'insegnante di informatica, quindi ho sviluppato un mio "metodo" associato ad una mia idea.
Spesso, soprattutto nelle scuole superiori, si insegna quello che formalmente viene chiamato C++ usando la programmazione procedurale.
Personalmente, mi sono trovato molto meglio insegnando prima le basi della programmazione procedurale appoggiandola al C standard, per poi spiegare i concetti alla base della programmazione orientata agli oggetti (incapsulamento, information hiding etc) e solo in seguito contestualizzare il tutto con il C++.
In questo modo, le persone a cui ho spiegato, hanno compreso più facilmente che il grosso "stacco" tra C e C++ non è tanto usare un namespace, quanto l'approccio orientato agli oggetti.
Io identifico, quindi, il C++ più con questo tipo di programmazione che con una programmazione procedurale C-style infarcita di cout e namespace.
Comunque, come ho già detto, questo è una mia idea e ovviamente può essere condivisibile o meno.