C++11作用域内枚举enum

在C++11之前的枚举enum,是没有办法两个枚举enum内有相同枚举值的。如果还不知道C++中枚举enum是什么,可以看这篇:枚举enum如:苹果和桔子都有大,中,小。写个代码来说明下:enum apple{big, medium, small, special};
enum orange{big, medium, small};以上代码编译不会通过的。之前我们可能会改成用size来做枚举,但apple枚举又多了一个枚举值,这样在C++11之前版本中就不会很好处理。

C++都支持哪些作用域

C++语言作用域符号是两个冒号:: ,相信大家不陌生,在看代码是一定会有很多地方有这::符号。作用域,如果不理解是什么,可以先理解成起作用的范围。书上都是写作用域,这样比较书面话,如写成作用范围就不哪么好听。C++语言支持3种作用域:
1.局部作用域(local scope)
2.名字空间作用域(namespace scope)??
3.类作用域(class scope)

为 什么有时对象退出作用域时没有调用析构函数?

正常情况下退出作用域时都会调用析构函数,不过有时也会有这种问题,先看下例子:

也就是说,有些人误以为 new 创建的对象会在函数的最后被析构。

基本上,只有当你希望一个对象能“生存”于其被创建的域之外时,才应该使用“ new”。如果这样,你就需要使用“delete”来析构该对象。例如: