// ============================================================================
//  p1c03_42  —  3.14.2.1 函数重载基本语法
//  来源：川大 C++/LinuxC wiki「02.Qt方向」
//  说明：本文件由 gen_part1.py 合并页面中的教学片段而成。每个片段用
//        // --- 原文片段 [pageId:blockIdx] --- 标注出处。
//        已做最小修正（笔误/平台移植），详见 docs/ERRATA.md。
// ============================================================================

#include <iostream>
using namespace std;

// --- 原文片段 [58954439:41]  3.14.2.1 函数重载基本语法 ---
namespace A{
	void MyFunc(){ cout << "无参数!" << endl; }
	void MyFunc(int a){ cout << "a: " << a << endl; }
	void MyFunc(string b){ cout << "b: " << b << endl; }
	void MyFunc(int a, string b){ cout << "a: " << a << " b:" << b << endl;}
	void MyFunc(string b, int a){ cout << "a: " << a << " b:" << b << endl;}
}
namespace B{
	void MyFunc(string b, int a){}
	//int MyFunc(string b, int a){} //无法重载仅按返回值区分的函数
}
void test(){
	A::MyFunc();
	A::MyFunc(10);
	A::MyFunc("hello");
	A::MyFunc(10, "world");
	A::MyFunc("world", 10);
	B::MyFunc("ok", 1);
}

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