2016-10-15 6 views
-1

ポインタのスタックに問題があります。私はその後、私は反対するためにいくつかのポインタを作成スタックからオブジェクトへのポインタを取得する

stack<object*> ob1; 

OB1という名前のポインタのスタックおよびスタックにプッシュしています。私はスタックからこれらのポインタを取得したいときは 私はこのメソッドを使用します。

object * tag; 
tag = new object(); 
tag = ob1.pop(); 

が、私は私が間違っているものを混同しています "error C2440: cannot convert void to object*" を取得します。 何か助けていただきありがとうございます。

+2

このコードで何をしようとしているのか分かりません。 'tag = new object()'とは何ですか?あなたはすぐにそれを漏らす。さらに、 'ob1.pop()'は値を返しません(したがってエラーです)。どの本を使ってC++を学んでいますか?標準ライブラリツールと関数を参照するために使用しているリファレンスはどれですか? –

+0

私はちょうどスタックからポインタをポップする方法を探しています。私はどのように知っていないのですか?私は初心者です。 – Rommel

+0

スタックから要素をポップするだけなら、 'ob1.pop();'と書くだけです。あなたが私に言わなかったことをしたいのであれば、もっとコードが必要になります。あなたがしたいことをより良く説明する必要があります。もう一度、どの本と参考資料を使用していますか?これらのことがそこでは説明されていないと考えるのは難しいです。 –

答えて

0

popは何も返さないため、このエラーが発生します。

hereを参照してください。戻り値の型はvoidです。 要素を取得するには、top()メンバーが必要です。 N.B. pop()はあなたの要素のデストラクタを呼び出します。

+0

これは良い質問ではありません。それはあなたの答えが間違っているわけではありませんが、OPのコードが壊れているので、コンパイラのエラーは彼らの心配の中で最も少なくなります。 – user4581301

+0

それを否定することはできません... google translateでdutch word 'rommel'を検索してください... –

関連する問題