真実はその中間にあります。厳密に言えば、主張は間違っていると言えます。
基本的に、C ++は強く型付けされているため、変数にはプログラム実行全体に対して定義された型があります。動的言語では、変数のタイプはプログラムの実行中に変更される場合があります。
ただし、仮想関数とポインターを使用すると、正確な型を知らなくても、C++でオブジェクトのメソッドを呼び出すことができます。その場合、基本言語といくつかの派生クラスがあります。基本クラスへのポインターを使用してメソッドを呼び出す場合、派生クラスへのポインターを変数に格納することもできるため、メソッドが呼び出されるクラスが正確にわかりません。
動的言語では、オブジェクトに対して定義されていないオブジェクトでメソッドを呼び出すと、メッセージを理解するオブジェクトにメッセージを転送する(しようとする)委任メカニズムがあります。これは一般的なランタイムメカニズムであり、C++には存在しません。
現在、QtはC++と同様に一般的に強く型付けされています。物事を動的に行う唯一の方法は、基本/派生のクラス化された関数と仮想関数の同じメカニズムによるものです。
そして非常に鋭いことです。オブジェクトのタイプを知らずにメソッドを呼び出すことは、実際にはメソッドが何をするのかを知らないと見なすことができます。動的に型付けされた言語でも、通常、少なくともオブジェクトの可能な型についての考えはあります。そのように、オブジェクトのタイプを知らずにメソッドを呼び出すことが有用なアプリケーションはないと私は主張します。注:動的型付けが役に立たないと言っているわけではありません(Objective C、Ruby、Javascriptに非常に満足しています...)-しかし、あなたが何も知らないわけではないと言っています動的言語でのオブジェクトの型について。