三元运算符
简单的三元运算符就不进行介绍,下面代码是一个嵌套的二次判断的三元运算。
static int s_Level = 4;
static int s_Speed = 2;
int main() {
if (s_Level > 5)
s_Speed = 10;
else
s_Speed = 5;
s_Speed = s_Level > 5 ? s_Level > 10 ? 15 : 10 : 5;
std::cout << s_Speed << std::endl;
std::cin.get();
}
上述代码若第一个判断为真,进入下一个判断,下一个判断若为真,就是第一个结果,若为假就是第二个结果,而第一个判断若为假,就是第三个结果。
创建对象
目前两种方式在栈和堆上进行。
栈
Entity e;
堆
Entity* e;
{
Entity* entity = new Entity("lhx");
e = entity;
std::cout << entity->GetName() << std::endl;
}
std::cout << e->GetName() << std::endl;
delete e;
不同之处在于,作用域不同,回收内存方式不同,而且栈通常较小。
还有其他指针类型:智能指针、共享指针。