2017-02-08 12 views
-3

私はメモリリークについて学び、 "新しい"を削除する方法に問題があります。C++「新規」を削除しますか?

私はこのようなコンストラクタがあります。

Car(string nameOfCar) { carName = nameOfCar; } 

をしてから、私は、車を継承するクラスを持っている。このように:

class Chrysler : public Car        
{ 
public: 
    Chrysler(string sound = "wroooom") : Car(sound) {} 
}; 

さて、私はそれより多くのコードを持っていますが、私はいけません私はこれ以上のコードを共有する必要があると思って、私の質問に尋ねる。私が間違っていれば、私はあなたにもっとコードを与えます。

とにかく、メインに、私は次のように実行します。

car.setCar(new Chrysler()); 

)すべてがうまく動作しますが、私は新しいクライスラーを(削除する方法を知らないので、私はメモリリークを持っています。私は車でデストラクタが必要だと思うが、私はそれを正しくするように思えない。誰でも私を助けてくれるだろうか? :)

+1

を墜落[MCVE]してください。 –

+0

あなたの学習教材は何を言いますか? 「車」とは何ですか? –

+1

あなたが 'Car'sと' Chrysler'のコンストラクタについて与えた情報は 'main()'の 'car.setCar(new Chrysler())'がメモリリークを引き起こすかどうかには何の影響もありません。 "デコンストラクタ"のようなものはありません。 – Peter

答えて

-1

これを行うための適切な方法は、メモリリークを回避するために作成され、すべてのクラスのデストラクタfucnction内の演算子を削除する設定しているポスト

+2

'Chrysler c;' - 自動ストレージで 'delete'を呼び出そうとしています。 – chris

関連する問題