Giúp mình lỗi nhỏ này với!
Nếu trong void main() mình viết là Them(567); chẳng hạn thì kết quả đối tượng A sẽ thay đổi! Nhưng khi tóm gọn phương thức này trong NhiPhan(n, A) thì KQ không thay đổi! Mặc dù Them(n) và NhiPhan(n, A) đều chung một Class. Tại sao lại có điều vô lý như vậy??? Sửa lại hộ mình, cảm ơn các bạn nhiều nhé ~~~
Code:
#include<iostream.h> #include<conio.h> #include<iomanip.h> class Stack { private: int top; int S[20]; public: Stack() { top = 0; } void Them(); void Them(int n); void Lay(); void Hienthi(); void NhiPhan(int n, Stack M); }; void Stack::Them() { cout<<endl<<"Them vao Top gia tri: "; cin>>S[top]; cin.ignore(1); top+=1; } void Stack::Them(int n) { S[top] = n; top+=1; } void Stack::Lay() { if(top == 0) cout<<endl<<"Stack rong"<<endl; else top-=1; } void Stack::Hienthi() { if(top == 0) cout<<"Stack rong"<<endl; else { cout<<"STACK "<<endl; for(int i=top-1; i>=0; i--) cout<<S[i]<<endl; } } void Stack::NhiPhan(int n, Stack M) { M.Them(n); } void main() { Stack A; int n; cout<<"Nhap n: "; cin>>n; cin.ignore(1); A.NhiPhan(n, A); /*Dòng này A đã thay đổi!*/ A.Hienthi(); /*Nhưng kết quả thì A vẫn không đổi!*/ getch(); }
Comment