Hỏi về lỗi không nhập được dữ liệu trong oop

Chào mọi người ạ.Mọi người cho em hỏi là trong đoạn code này tại sao em lại không nhập được dữ liệu cho biến a ạ.Em dùng phương thức ảo để gọi.

Đây là code ạ.

#include<iostream>
using namespace std;
class A{
	public:
		 virtual void nhap(){}
		 virtual void xuat(){}
};
class B: public A{
	private :
		float a;
	public:
		void nhap(){
		cout << "Nhap a: " << endl;
		cin >> a;	
		}
		void xuat(){
		  cout << a << endl;
		}
		
};
int main(){
   A *s  = new B[5];
   for(int i = 0;i < 4;i++){
      s[i].nhap();
   }
   for(int i = 0;i < 4;i++){
      s[i].xuat();
   }
   return 0;
}

Phải như v.

    A **s  = new A*[5];

    for (int i = 0; i < 5; ++i) {
        s[i] = new B;
    }

    for (int i = 0; i < 4; i++) {
        s[i]->nhap();
    }

    for (int i = 0; i < 4; i++) {
        s[i]->xuat();
    }

Mà dùng có 0 đến 3 thì cấp phát tận 5 chi v. :kissing:

4 Likes

Dạ vâng em cảm ơn ạ.Tại e đang viết thử nên nhập đại cho nó chạy đến 3 ạ.:v

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?