You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ".h" headers dump all their names into the global namespace, whereas the newer forms keep their names in namespace std. Therefore, the newer forms are the preferred forms for all uses except for C++ programs which are intended to be strictly compatible with C.
示例1
[1] 一般使用
#include <cstdio>
代替#include <stdio.h>
@see Standard C++ C-Library Subset Header Strategy
[2] 在类中使用指针的危险性
在
FaceppApi
中使用指针为浅复制,当使用常量指针转递参数给构造函数没有问题,作为 C++ 的开发者会选择std::string
,为了适配库,可能以std::string.c_str()
形式传递参数给构造函数,往往出现参数已经失效,引用了一个无效的指针。示例2
[3] 在头文件中引入命名空间
std
容易引发名字冲突难以保证我们在开发过程中不效仿标准库的命名规则,在头文件中引入命名空间
std
,只要包含了它,后续所有代码都表明使用命名空间内的代码,万一自己命名了相同的标识符会产生冲突。[4] 与类成员无关的函数可以独立
在类
CurlPost
中的doPost
并没有使用类的任何数据,这个方法导致在调用处创建一个临时对象,将它声明为静态函数(CurlPost::doPost(...)
)或命名空间(curlpost::doPost(...)
)内的自由函数,免于创建临时对象。[5] 建议: 库加上自己的命名空间,免于与用户代码冲突。
The text was updated successfully, but these errors were encountered: