0
A
答えて
4
違いは、結果の多くを持つことができ、異なるタイプを有するものとしてobject
宣言することです。たとえば:
cDerived
は(それがcBase
から継承ものを超えて)、新しいメンバーを宣言した場合は、その後、cDerived* object
を有する唯一のバージョンが入手可能なもの(バックcDerived*
に明示的に意気消沈していない限り)になります。cDerived
がオーバーライドする非仮想メンバ関数を宣言した場合、どの仮想関数が呼び出されるかは、呼び出しに使用するポインタの種類によって異なります。- 関数が
cDerived*
を受け取ると予想される場合は、cDerived*
に明示的にダウンキャストしない限り、に渡すことはできません。
2
object
の静的な型は、あなたの二つの例で異なります。のは、例を見てみましょう:
struct A {};
struct B : A
{
void method() {}
};
int main() {
A* a = new B;
B* b = new B;
a->method(); // compile error, A has no member named method.
b->method(); // fine. b's static type is B*, and B has a member named method
}
a
が実際にB
オブジェクトを指していることそれが問題ではありません。その静的型はA*
であり、A
にはmethod
という名前のメンバーはありません。
関連する問題
- 1. Heredoc <<<または<<?
- 2. 受信したオブジェクトをList <object>またはIEnumerable <object>にキャスト
- 3. <img>と<object>
- 4. Gitは<<<<<<< HEADをファイルに追加し続けます
- 5. ストリーム<Object>の代わりに<Set<Object>>
- 6. <applet>対<object>
- 7. Mock.Of <Object> VS Mock <Object>()
- 8. キャストリスト<Object>リスト<Map <String、Object >>
- 9. System.Web.UI.Control.LoadRecursive()私は</p> <pre><code>Object reference not set to an instance of an object. </code></pre> <p>私のユーザーコントロールまたはページ
- 10. 私のグローバルなHTMLテンプレートで<iframe>または<object>
- 11. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 12. Angular2ディール<アレイは<Object>>
- 13. ArrayList <Object>をArrayListにキャストできません<MyObject>
- 14. 作成<Object>と新しいEntity Frameworkの<Object>
- 15. C#キャストリスト<object[]>リストに<customClass>
- 16. ReSharperの:</p> <pre><code>new ResharperFeature </code></pre> <p>そして私は<em>Ctrlキーを押しながらBackspaceキー</em>を押すと、私が手::</p> <pre><code>new Resharper </code></pre> <p>そして、私が欲しい、私はテキストを持っている場合はCtrl-BackspaceキーがCamelCaseWord
- 17. は、私は私のテーブル<code>new</code>にフィールド<code>photo</code>から<code>~\NewFolder1\</code>を削除する必要が
- 18. Swift <<, ><, <=< and > = <
- 19. C#Generics:リスト<Object>または新しいクラスextendsリスト<Object>
- 20. 私は<p> </p>以下公衆リストマップ(A級A){</p> <pre><code>List<ClassB> list = new ArrayList<ClassB>(); ClassB C1 = new ClassB(); ClassB C2= new ClassB(); </code></pre> <p>.... C1及びC2を移入するためのロジックのような別のオブジェクトのリストにオブジェクトをマッピングする必要が
- 21. 変換リスト<Object><attributeA、リスト<attributeB>
- 22. リストからキャストできません<map <string、object >>リストに<map <string、string >>
- 23. ソートリスト<Object[]>
- 24. ソートマップ<String、List <Object[]>>
- 25. パーサーは次の式をどのように解析しますか?new init()?</p> <pre><code>function init() { return 1; } </code></pre> <p>どのようにパーサが</p> <pre><code>new init(); </code></pre> <p>を解析ん:
- 26. 私は、我々のシステムで<code>true</code>または<code>false</code>を表し<code>short</code>値を変換しようとしています-1(<code>true</code>)、0(<code>false</code>)ブールエンティティフレームワーク
- 27. EF6 - List <Func <T, object>>
- 28. なぜ[:] = 1は[:] = '1'と根本的に異なるのですか? <code>a</code>が<code>['1']</code>ある最初のケースで</p> <pre><code>a = [] a[:] = '1' </code></pre><p>と</p> <pre><code>a = [] a[:] = 1 </code></pre><p>:
- 29. リストをキャストできません<object><カスタムオブジェクト>
- 30. Tortoise svn <<<<をファイルに追加しています!
'CBASE *オブジェクトの違いは何;'と '*オブジェクトをcDerived;'? – immibis
これは私が見つけようとしていることです。 – drum