|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 C丁洞杀O 于 2023-1-7 14:30 编辑
(只有算法,不是C++高级!)
1. 函数重载,这个伟大的能力,源自于C++的函数名称粉碎技术
如:int Add(int a, int b); 会变成 _Add_int_int 的形式(各个编译器会有不同,但大体相同),所以C++的函数可以通过函数参数列表进行重载
下面的程序
- #include <iostream>
- using namespace std;
- int add(int a, int b){
- return a+b;
- }
- double add(double a, double b ){
- return a+b;
- }
- int main (){
- cout<<add(1, 2)<<endl;
- cout<<add(2.12, 2.1);
- return 0;
- }
复制代码
输出:
2. C++支持模板, C也支持,但不如C++的强大,好用
他的好处就是算法结构,无论是模板函数还是模板类,都非常好用(调用强大)
- #include <iostream>
- using namespace std;
- class cs { // 当模板多的时候,就成了一个算法库 (直接写函数的可能出现重名(namespace + class)可以减少重名)
- public:
- template<typename Do>
- static int add(Do a, Do b) {
- return a + b;
- }
- template<typename Do>
- static void ifa(bool a, Do& b) {// 如果,那么
- if (a) {
- b();
- }
- else {
- cout << "false";
- }
- }
- };
- struct out { // 重载()算数符, 达到伪函数的目的
- void operator()() {
- cout << "do\n";
- }
- };
- int main() {
- cout<< cs::add(1, 1) << endl;
- out d;
- cs::ifa(1, d);
- system("pause");
- return 0;
- }
复制代码
还有许多,回调函数和引用下次我心情好了在继续讲吧,反正,估计没人看(q_q)
|
|