Đề bài:
Xây dựng lớp CPU là lớp biểu diễn con chip của máy vi tính. Lớp CPU có các thuộc tính và phương thức sau:
Thuộc tính:
double tocDo: Xung nhịp tính theo GHz của con chipPhương thức
- Hàm tạo một đối CPU(double s): Khởi tạo cho tốc độ của chip là s
- Hàm sucManh(): Trả lại giá trị của biến tocDo
- Hàm xepHang(): xét xem giá trị do hàm sucManh() trả lại có lớn hơn 3 hay không. Nếu lớn hơn 3 thì in ra thông điệp “Chip này rất mạnh”;
Xây dựng lớp Core2Dual thừa kết từ lớp CPU. Lớp này không có thêm thuộc tính gì cả.
Phương thức:
- Hàm tạo có một đối số Core2DualT(double s): Khởi tạo cho tốc độ chip là s
- Định nghĩa lại phương thức sucManh sao cho phương thức này trả lại giá trị bằng 2 * tocDo.
a. Viết hàm main sử dụng các lớp này như sau:
Khai báo một biến thuộc lớp Core2Dual như sau:
Core2Dual aChip(2);
Gọi phương thức xepHang trên đối tượng aChip này.b. Thay đổi chương trình như sau:
Khai báo phương thức sucManh ở lớp CPU là phương thức ảo
Biên dịch và chạy chương trình => Kết luận
Biên dịch và chạy chương trình.
Code của em đây.
#include<iostream>
using namespace std;
class CPU{
protected:
double tocDo;
public:
CPU(double s);
double sucManh();
void xepHang();
};
class Core2Dual: public CPU{
public:
Core2Dual(double s);
double sucManh();
};
int main()
{
Core2Dual aChip(2);
aChip.xepHang();
cout<<endl;
system("pause");
return 0;
}
CPU::CPU(double s):tocDo(s){
}
double CPU::sucManh(){
return tocDo;
}
void CPU::xepHang(){
if(tocDo >3)
{
cout <<"Chip nay rat manh. ";
}
else
{
cout <<"Chip nay yeu. ";
}
}
Core2Dual::Core2Dual(double s):CPU(s){
}
double Core2Dual::sucManh(){
return 2*tocDo;
}
Nếu em viết trương trình này thì nó phải ra: “Chip nay rat manh” đúng không ạ… Nhưng em chạy thì nó ra chip này yếu… Vậy không biết em sai chỗ nào, mong mọi người giúp đỡ.

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