摘要: char* c = NULL; C:NULL表示空指针,NULL可以被定义为 ((void*)0)或是0 。 C++不允许将void*隐式转换为其他类型的指针,这样定义: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NUL 阅读全文
posted @ 2020-05-25 19:39 elon_wang 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 提出问题: struct Base { virtual void some_func(); }; struct Derived : Base { void some_func(); //重写 }; Derived::some_func 的真实意图?? 真的重写?意外写了同名的函数?基类中加了相同的签 阅读全文
posted @ 2020-05-25 19:36 elon_wang 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 在标准C中,只要在编译单元内遇到被完整定义的模板,编译器都必须将其实例化 。 这会大大增加编译时间,特别是模板在许多编译单元内使用相同的参数实例化 。而且没有办法告诉C不要引发模板的实例化。 C++11引入外部模板这一概念。 C++已经有了强制编译器在特定位置开始实例化的语法(显式实例化): tem 阅读全文
posted @ 2020-05-25 19:33 elon_wang 阅读(474) 评论(0) 推荐(0) 编辑