#include <iostream>
using namespace std;
struct A
{
A()
{
cout << "A::A()" << endl;
}
};
int A()
{
cout << "void A()" << endl;
return 0;
}
int main()
{
auto v = A();
}
La sortie est:Pourquoi C++ autorise une fonction et une classe porte le même nom?
vide A()
Pourquoi C++ permet une fonction et une classe ont un même nom?
Le concepteur a pris cette décision et personne ne l'a changé ... je ne sais pas quelle autre réponse vous recherchez. Peut-être que c'était pour la compatibilité avec le code C ou autre code existant –
je demande, pourquoi pas? Juste pour ne pas laisser les gens se confondre? – csmckelvey
Je vote pour clore cette question hors-sujet car elle devrait être adressée à Bjarne Stroustrup. Tout le reste n'est qu'une opinion plus ou moins mal informée. – EJP