创建对象与返回局部变量地址
小于 1 分钟cpp
概述
在函数中返回局部变量的地址需要通过 new 来创建对象,而不能采用通常的声明变量的方式
错误的创建方式
看下面代码,使用声明一般变量的方式在函数中创建对象并返回其指针的话,使用时会报错 
new方式创建对象
使用 new 方式创建的对象在外部使用就没有问题。同时也可以看出 new 创建对象后返回的是对象的指针
#include <iostream>
#include <string>
using namespace std;
class Employee {
public:
int id;
string name;
Employee(int i, string n) { id = i; name = n; };
string getName() { return name; }
};
Employee* getEmployee(int id,string name) {
Employee e(id, name);
return &e;
}
Employee* getEmployeeNew(int id, string name) {
Employee* e = new Employee(id,name);
return e;
}
int main()
{
Employee* e1 = getEmployee(1001, "张三");
Employee* e2 = getEmployeeNew(1002,"李四");
std::cout << "employee.name:" << e2->name << endl;
system("pause");
}
