// ============================================================================
//  p1c04_08_03  —  4.8.2.1 问题解决方案(虚函数,vitual function)
//  来源：川大 C++/LinuxC wiki「02.Qt方向」
//  说明：本文件由 gen_part1.py 合并页面中的教学片段而成。每个片段用
//        // --- 原文片段 [pageId:blockIdx] --- 标注出处。
//        已做最小修正（笔误/平台移植），详见 docs/ERRATA.md。
// ============================================================================

#include <iostream>
using namespace std;

// --- 原文片段 [58954469:2]  4.8.2.1 问题解决方案(虚函数,vitual function) ---
class Animal{
public:
	virtual void speak_1(){
		cout << "动物在唱歌..." << endl;
	}
};
class Dog : public Animal{
public:
	virtual void speak_1(){
		cout << "小狗在唱歌..." << endl;
	}
};
void DoBussiness(Animal& animal){
	animal.speak_1();
}
void test(){
	Dog dog;
	DoBussiness(dog);
}

// --- main ---
int main() {
    test();
    return 0;
}
