毎回は...私は、派生クラスのオブジェクトを持つベースクラスオブジェクトを初期化するとき仮想関数doesntの仕事私はそれは常に、基本クラスを呼びかけDrawメソッドを呼び出す
#pragma once
#include <pch.h>
#include <A.h>
class B: public A
{
public:
B();
void Draw(CanvasDrawingSession^ drawingSession);
};
由来
#pragma once
#include <pch.h>
class A
{
public:
A();
virtual void Draw(CanvasDrawingSession^ drawingSession);
};
クラスB A a = B()、Drawメソッドを呼び出す - a.Draw()は、基本クラスから常にDraw()を呼び出します。私は間違っているの?
'A a = B()'は*オブジェクトのスライス*を行い、基本的に 'B'インスタンスを' A'インスタンスに変換します。 C++の多態性は、基本クラスに対して*ポインタ*と*参照*を使って動作します。 –