#include <iostream>
#include "refstack.h"
using namespace std;
int main()
{
stack<double> d1;
d1.push(3.14); d1.push(4.14); d1.push(5.14);
cout << d1 << endl;
stack<double> d2(d1); // másoló konstruktor másolás nélkül
cout << d1.test_address() << ", " << d2.test_address() << endl;
while ( ! d1.empty() )
cout << "pop: " << d1.pop() << endl;
cout << d1.test_address() << ", " << d2.test_address() << endl;
d1.push(6.14); // másolás itt
cout << d1.test_address() << ", " << d2.test_address() << endl;
cout << d1 << endl;
cout << d2 << endl;
d1 = d2; // értékadás másolás nélkül
cout << d1.test_address() << ", " << d2.test_address() << endl;
cout << d1 << endl;
return 0;
}
/* Output:
[ 3.14, 4.14, 5.14 ]
0x804a6b8, 0x804a6b8
pop: 5.14
pop: 4.14
pop: 3.14
0x804a6b8, 0x804a6b8
0x804a720, 0x804a6b8
[ 6.14 ]
[ 3.14, 4.14, 5.14 ]
0x804a6b8, 0x804a6b8
[ 3.14, 4.14, 5.14 ]
*/