2017-06-23 4 views
1

Tenir compte de la classe suivante:C++ final ou fermé

class X { 
}; 

On peut facilement hériter de ceci:

class Y : public X { 
}; 

Ok jusqu'à présent ... Disons que nous ne voulons pas que quiconque d'hériter de Y nous pouvons alors faire cela à la place.

class Y sealed : public X { 
}; 

Ou nous pourrions faire ceci:

class Y final : public X 
}; 

Quelles sont les principales différences entre les deux mots-clés final et sealed? Je connais leurs objectifs de base et à quoi ils servent; Je voulais juste savoir s'il y avait quelque chose de différent entre les deux.

+10

'sealed' n'est pas standard C++. –

+2

Microsoft faisant des choses Microsoft .... – UmNyobe

+0

Je n'étais pas sûr à 100%; je vous remercie pour la réponse –

Répondre

6

sealed n'est pas le standard C++ - il semble être un Visual C++ CX extension. De la même page:

Le langage standard ISO C++ 11 a le mot clé final, qui est pris en charge dans Visual Studio. Utilisez final sur les classes standard et sealed sur les classes ref.

+0

Merci pour l'information. Maintenant, je sais que «final» est à travers la norme et «scellé» est spécifique à MS, sinon ils font essentiellement la même chose. –