C++作为一门多范式编程语言, 今天我们来看看实现一个简单的加法, 我们可以有多么不同的四种方式!
首先当然是最简单的函数实现
int add1(int a, int b)
{
return a + b;
}
然后是用对象操作符重载来弄一个
class Add
{
public:
int operator()(int a, int b)
{
return a + b;
}
};
->dcltype表示获取变量的类型作为返回值类型, auto用来"接"这个获取到的类型
template <typname T>
auto add3(T a, T b) -> decltype(a)
{
return a + b;
}
auto add4 = [](int a, int b) -> int
{
return a + b;
}
#include <iostream>
using namespace std;
int add1(int a, int b)
{
return a + b;
}
class Add
{
public:
int operator()(int a, int b)
{
return a + b;
}
};
template <typename T>
auto add3(T a, T b) -> decltype(a)
{
return a + b;
}
auto add4 = [](int a , int b) -> int
{
return a + b;
};
int main()
{
Add add2;
cout << add1(3, 4) << endl;
cout << add2(3, 4) << endl;
cout << add3(3, 4) << endl;
cout << add4(3, 4) << endl;
return 0;
}
g++ hello.cpp -o hello -std=c++11
./hello
C++可以用过程式编程, 对象式编程, 模板/泛型编程, 函数式编程.
今天这四个add方法充分体现了这四种风格的编程. 其实不难, 关键是在合适的场景用合适的方式来解决问题.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。