何らかの理由で、C++の組み込みキュークラスが、同じビルド方法で作成したクラス内で動作しないようです-in待ち行列はメインで動作します。クラスに使用するキューに、変数に追加する変数の値を格納します。しかし、クラス内で組み込みのキューを使用すると、キューには代わりに何か他のものが含まれている可能性があります。おそらく変数のアドレスです。作成したクラス内でC++の組み込みキュークラスを使用して作成する
私は何を間違えていますか?
#include <queue>
#include <iostream>
#include <cstdlib>
using namespace std;
class Myclass {
private:
queue<int> q;
public:
Myclass();
void qPush(int n){ q.push(n); }
int qFront(){ q.front(); }
void qPop(){ q.pop(); }
};
Myclass::Myclass() { // Default Constructor
}
int main() {
int num1 = 0;
int num2 = 1;
queue<int> myQ;
myQ.push(num1);
myQ.push(num2);
cout << myQ.front() << endl;
myQ.pop();
cout << myQ.front() << endl;
cout << "Myclass version: " <<endl;
Myclass b;
b.qPush(num1);
b.qPush(num2);
cout << b.qFront() << endl; // I want this to print out an int. But it looks like it may be printing out an address instead?
b.qPop();
cout << b.qFront() << endl;
return 0;
}
出力は私が取得:
0
1
Myclass version:
537168208
537168212
あなたは 'MyClass :: qFront'から何も返されません。 –
私はあなたのコンパイラがこれについてあなたに警告しなかったことに驚いています。 – AndyG