马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|