Sie können C++ funktionieren genau wie MATLAB (siehe Antwort oben), aber es nicht machen viel Sinn. Ein sehr guter Indikator dafür ist, Ihr Testfall selbst:
draw('shape','square','width',3,'hight',4); // should draw a square
Sie height
falsch geschrieben. In meinem üblichen Code würden Sie (Laufzeit-) Warnung von "unbekanntem Spezifizierer hight
" bekommen und 4 zugunsten des Standardwertes ignoriert haben oder vielleicht nichts tun. Und diese Warnung ist nur hier, weil ich es schreibe in otherwise
Block. Eine Menge Code von Mitarbeitern tut dies nicht und würde einfach stillschweigend den Standardwert verwenden oder nichts tun.
Jetzt versuchen, das Debuggen in der Mitte einer komplizierten find some elements on image
-Funktion - Sie würden nicht leicht herausfinden, es ist ein einfacher Tippfehler in Ihrem Anruf an draw
Funktion.
Anstatt also Matlab-Code in C machen ++, sollten Sie so etwas wie schreiben:
void MyDrawingFunct(Shape shape){
...}
void MyDrawingFunct(Curve curve){
...}
Wo Sie Formen zeichnen würden Sie definiert haben (wie Quadrat, Kreis etc.), und eine andere Funktion für Kurven usw. oder, wenn Sie gegen sagen wir sicherstellen wollen das Hinzufügen Ellipse
-Shape
und haben es zur Laufzeit fehlschlagen, können Sie einige weitere Funktionen haben - ...(Square ...)
usw.
Der Hauptvorteil ist, dass MyDrawingFunct
mit nennen versuchen, sagen Ellipsoid
wird sofort benachrichtigen Sie, of error (bei Kompilierung Zeit), während Sie Dinge tun, die Ihre gewohnte MATLAB-Methode haben, werden Sie sich fragen, ob ellipsoid
nicht implementiert ist oder Sie nur irgendwo einen Tippfehler gemacht haben (wie in Ihrem Beispiel). Und Sie werden das zur Laufzeit treffen.
Ist das wirklich was du willst? C++ bietet viel sauberere Lösungen, bei denen Sie nicht auf Strings wie Polymorphie angewiesen sind. Ein Vorteil ist, dass Sie im Falle eines Codierungsfehlers anstelle von Laufzeitfehlern Kompilierungsfehler erhalten. Und deine IDE wird dich dafür mögen. – Bernhard