次のコードがあります。
#include <iostream>
using namespace std;
class CForward;
void func(CForward* frw) { delete frw; }
class CForward
{
public:
~CForward() { cout << "Forward" << endl; }
};
int main()
{
func(new CForward);
cin.get();
}
プログラムを実行しましたが、何も出力されませんでした。
なんで?
main では を作成しnew CFoward
、 ではfunc
それを削除してデストラクタと呼びました。
デストラクタが呼び出されていないようです。なんで?それはとにかく前方宣言に関連していますか?