Mọi người ơi. Lớp dẫn xuất kế thừa tất cả các phương thức của lớp cơ sở ngoại trừ:
– Hàm tạo, hàm hủy và hàm tạo copy
– Chồng toán tử của lớp cơ sở
– Hàm bạn của lớp cơ sở.
Ởchương trình này mình thấy là Dog đang thừa kế Pet hàm constructor Pet(n), vậy mình hiểu sai chỗ nào, các bạn phân tích giúp mình với.
#include <iostream>
using namespace std;
class Pet {
protected:
string Name;
public:
Pet(string n) { Name = n; }
virtual string getSound() { return "";};
void makeSound(void) { cout << Name << "says: " << getSound() << endl; }
};
class Cat : public Pet {
public:
Cat(string n) : Pet(n) { }
string getSound() { return "Meow! Meow!";};
};
class Dog : public Pet {
public:
Dog(string n) : Pet(n) { }
string getSound() { return "Woof! Woof!";};
};
int main(void) {
Pet *a_pet = new Cat("Kitty");;
a_pet->makeSound();
delete a_pet;
a_pet = new Dog("Doggie");
a_pet->makeSound();
delete a_pet;
return 0;
}
cảm ơn bạn nha, tiện thể mình hỏi luôn, toán tử " :" á, nó gọi là toán tử gì vậy, nó còn dùng trường hợp nào nữa không?
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?