Question

En essayant de se mettre à jour avec C ++ (provenant d'une longue expérience avec C), je suis évidemment en train de faire la bonne chose, et utiliser autant que la norme est que possible.

Cependant, dans mes lectures sur la question que je viens accross beaucoup de critiques pour des choses standards, et la louange des choses non standard. Par exemple, même le la (je suppose) mal pensé de la bibliothèque MFC a des caractéristiques, par exemple, sa classe CString que certaines personnes pensent assez utile pour les amener à continuer à l'utiliser malgré le fait que ce soit (a) non standard et (b) qu'il est (je suppose, de la richesse de la critique) déficiente à bien des égards importants.

Ma question est double, alors:

A. Qu'est-ce que les bibliothèques qui sont mal pensés de contenir des caractéristiques qui rendent néanmoins il vaut la peine de continuer à les utiliser, quelles sont ces caractéristiques, et ce qui est bon pour eux?

B. Y at-il des bibliothèques « adaptateur » là-bas qui simplifient et / ou resserrer l'utilisation de ces bibliothèques, par exemple fournissant des interfaces agréables que les fuites de ressources abstraites, des adaptateurs qui vont à partir d'une interface de bibliothèque non STL à un STL, etc.

En tant que débutant par rapport à StackOverflow, je ne suis pas sûr à 100% que cette question est suffisamment sur le point, donc je présenter des excuses à l'avance si elle est trop ouvert.

Merci d'avance

Était-ce utile?

La solution

Mon grunge personnel est avec ACE . Il était en quelque sorte l'inverse - une grande idée, rien d'autre était disponible au moment de multiplateformes filetée et le développement du réseau en C ++, grand déploiement, livres par les auteurs de la bibliothèque, etc. Mais la mise en œuvre était terrible, les habitudes d'utilisation étaient complexes, presque toutes les fonctionnalités utiles de C ++ retins (ou ne trouvait pas à l'époque.) Je pense que cette bibliothèque est seul responsable pour une bonne partie de gens qui pensent que C ++ est difficile et laid. Très récemment Boost collection a commencé à rattraper avec des fils, et la mise en réseau ipc, donc il y a au moins une alternative. Mais avec tout ce que dit, je pense toujours qu'il vaut la peine d'être familier avec ACE si vous êtes dans cet espace depuis, encore une fois, trop de gens l'utilisent, les idées sont bonnes, et il peut servir de bon exemple négatif pour la conception bibliothèque.

Autres conseils

OMI la meilleure chose à propos de MFC est que, historiquement, il était disponible devant le TSL était disponible, et quelque chose était mieux que rien.

MFC est toujours bonne, si vous écrivez du code pour être compatible avec une base de code MFC existant.

En dehors de cela, il y a peu de mérite dans MFC, sauf qu'il est peut-être encore l'un des (sinon le plus) bibliothèque évidente de classe C ++ pour Windows.

Sur une note plus générale, je pense que l'une des raisons pour lesquelles les gens collent avec le vieux, maladroit et peut-être même des bibliothèques obsolètes est qu'ils ont pris l'habitude et quelque chose de nouveau et brillant pourrait mieux faire le travail, mais sont plus difficiles à saisir / comprendre au départ. Et si vous restez avec ce qui est familier et garder votre productivité.

Je pense qu'il est un équilibre entre faire le travail et faire le travail « droit ». Quelque part entre les deux est probablement là où la plupart d'entre nous finissent.

CString est non standard, car MFC ne sont pas multi-plateforme, je pense. std :: string () est standard, mais si nous utilisons tout ce standard, alors pourquoi MS développé MFC?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top