C++知识点

1 异常规格(exception specification)用来指定某个函数可能抛出哪些异常,例如:void fun() throw(bad_alloc); //fun()只能丢出bad_alloc异常void fun() throw(); //fun()不抛出任何异常void fun() throw()(E1, E2, E3); //fun()只能丢出E1, E2, E3异常2 命名空间定义命名空间namespace uvsjoh {int a;void fun() { cout<< "uvsjoh::fun" << endl; }};namespace是开发的,你可以在不同模块中定义和扩展namespace。例如可以在同一文件中同时出现如下定义namespace uvsjoh {int a;void fun() { cout<< "uvsjoh::fun" << endl; }};namespace uvsjoh {int b;void fun2() { cout << "uvsjoh::fun2" << endl; }};当然它们也可以出现在不同的文件中。不要轻易使用using directive。using directive等于将所有namespace中的名字声明于namespace之外。这将容易造成名称冲突。所有,如不场合不甚清楚(例如不清楚究竟是在头文件、模块里还是程序库里),你不应该使用using directive。事实上在头文件中使用using directive是相当不明智的。如果程序很小,那么直接使用using namespace std;会很方便。3 可移植的main()根据C++标准只有两种main()是可移植的int main(){...}int main(int argc, char argv[]){...}4 类型的名字typeid(type).name()5 捕获异常捕获任何异常,一般用于异常发生时执行清理工作try {...}catch (...) {//clean upthrow; // - rethrow the exception}6 STL智能型指针auto_ptr -- 解决在异常处理过程中的资源遗失问题。*智能型指针保证,无论在何种情形下,只要自己被销毁,就一定连带释放其所指资源。智能型指针本身就是区域变量,所以无论是正常退出,还是异常退出,只要函数退出,它就一定会被销毁。class A;std::auto_ptr ptr(new A);当超出作用域或异常退出时A的虚构函数会被自动调用。好的建议是:始终使用const std::auto_ptr原文链接: https://www.cnblogs.com/uvsjoh/archive/2012/04/06/2434540.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/46255

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午10:39
下一篇 2023年2月8日 下午10:40

相关推荐