智能指针
智能指针是C++11新增的特性,它可以帮助开发者避免内存泄漏和野指针问题。智能指针本质上是一个类对象,它拥有指向堆内存的指针,并在析构函数中释放这些指针。
下面是一个使用智能指针的示例程序:
#include <iostream>
#include <memory>
using namespace std;
class MyClass
{
public:
void hello()
{
cout << "Hello, world!" << endl;
}
};
int main()
{
unique_ptr<MyClass> ptr(new MyClass);
ptr->hello();
return 0;
}
以上程序定义了一个MyClass类和一个unique_ptr智能指针对象。在main()函数中,我们使用new关键字创建了一个MyClass对象,并将其绑定到unique_ptr对象ptr中。当程序执行完毕后,unique_ptr对象会自动释放MyClass对象的内存空间,避免了内存泄漏问题。
lambda表达式
lambda表达式是C++11中另一个非常重要的特性,它可以帮助开发者写出更加简洁和可读的代码。lambda表达式本质上是一个匿名函数,它可以捕获外部变量,并返回一个值。
下面是一个使用lambda表达式的示例程序: