あなたは正確にMATLABのようなC++の作業を行う(上記の答えを参照)ことができますが、それはあまりにもなりません。多くのセンス。あなたはheight
をつづりの間違っ
draw('shape','square','width',3,'hight',4); // should draw a square
:そのために非常に良い兆候は、あなたのテストケースそのものです。私の通常のコードでは、 "unknown specifier hight
"という警告を(実行時に)得て、デフォルト値に賛成して無視するか、おそらく何もしないようにします。そして、この警告はブロックotherwise
に書かれているので、ここにしかありません。多くの同僚のコードでは、デフォルト値を静かに使用したり、何もしません。
複雑なfind some elements on image
関数の途中でデバッグを試してみてください。draw
関数の呼び出しで単純なタイプミスであることが簡単にわかりません。代わりに、C++でのMATLABコードを作るの
ので、あなたのような何かを書く必要があります:あなたは、曲線などのために別の関数(四角、丸などのように)あなたが定義した図形を描くでしょう
void MyDrawingFunct(Shape shape){
...}
void MyDrawingFunct(Curve curve){
...}
あなたはShape
からEllipse
を追加する発言に対して保護したいと、それは実行時に失敗している場合か、あなたはいくつかのより多くの機能を持つことができます - ...(Square ...)
など
主な利点Ellipsoid
はすぐに通知されますと言うとMyDrawingFunct
を呼び出そうということですエラー(コンパイル時)あなたの普通のMATLABの方法では、ellipsoid
が実装されていないのか、あなたの例のように入力ミスがあったのか疑問に思うでしょう。そして、実行時にそれを打つでしょう。
これは本当に必要なものですか? C++には、ポリモーフィズムなどの文字列に依存しない、よりクリーンなソリューションが用意されています。 1つの利点は、ランタイムエラーではなく、コードミスの場合にコンパイル時エラーが発生することです。そしてあなたのIDEはあなたのためにそれを好きになるでしょう。 – Bernhard