作用域
March 15, 2023Less than 1 minute
作用域
作用域指针
作用域中声明的变量都是存在栈中的。
#include <iostream>
class Entity
{
public:
int x;
Entity()
{
std::cout << "Created Entity" << std::endl;
}
~Entity()
{
std::cout << "Destroyed Entity" << std::endl;
}
};
class ScopePtr
{
public:
Entity *entityPtr;
ScopePtr(Entity *e) : entityPtr(e) {}
~ScopePtr() { delete entityPtr; }
};
void Run()
{
{
// 离开作用域当前值会被销毁
// Entity e;
// 离开作用域指针不会被销毁
// Entity *e = new Entity();
// 离开作用域指针会被销毁
ScopePtr e = new Entity();
}
std::cin.get();
}