strchr函数用法_c++ strchr函数_strchr函数原型(10)

电脑杂谈  发布时间:2017-02-28 18:06:59  来源:网络整理

虽然不推荐使用引用计数指针,但有些时候它们的确是最简单有效的解决方案.

(YuleFox注:看来,Google所谓的不同之处,在于尽量避免使用智能指针:D,使用时也尽量局部化,并且,安全第一)

cpplint:使用cpplint.py检查风格错误.

cpplint.py是一个用来分析源文件,能检查出多种风格错误的工具.它不并完美,甚至还会漏报和误报,但它仍然是一个非常有用的工具.用行注释//NOLINT可以忽略误报.

某些项目会指导你如何使用他们的项目工具运行cpplint.py.如果你参与的项目没有提供,你可以单独下载cpplint.py.

5.其它C++特性:

引用参数:所有按引用传递的参数必须加上const.

定义:在C语言中,如果函数需要修改变量的值,参数必须为指针,如intfoo(int*pval).在C++中,函数还可以声明引用参数:intfoo(int &val).

优点:定义引用参数防止出现(*pval)++这样丑陋的代码.像拷贝构造函数这样的应用也是必需的.而且更明确,不接受NULL指针.

缺点:容易引起误解,因为引用在语法上是值变量却拥有指针的语义.

结论:函数参数列表中,所有引用参数都必须是const:

void Foo(const string &in, string *out);
事实上这在GoogleCode是一个硬性约定:输入参数是值参或const引用,输出参数为指针.输入参数可以是const指针,但决不能是非const的引用参数.

在以下情况你可以把输入参数定义为const指针:你想强调参数不是拷贝而来的,在对象生存周期内必须一直存在;最好同时在注释中详细说明一下.bind2nd和mem_fun等STL适配器不接受引用参数,这种情况下你也必须把函数参数声明成指针类型.

函数重载:仅在输入参数类型不同,功能相同时使用重载函数(含构造函数).不要用函数重载模拟缺省函数参数.

定义:你可以编写一个参数类型为conststring&的函数,然后用另一个参数类型为const char*的函数重载它:

class MyClass {
    public:
    void Analyze(const string &text);
    void Analyze(const char *text, size_t textlen);
};
优点:通过重载参数不同的同名函数,令代码更加直观.模板化代码需要重载,同时为使用者带来便利.

缺点:限制使用重载的一个原因是在某个特定调用点很难确定到底调用的是哪个函数.另一个原因是当派生类只重载了某个函数的部分变体,会令很对继承的语义产生困惑.此外在阅读库的用户代码时,可能会因反对使用缺省函数参数造成不必要的费解.

结论:如果你想重载一个函数,考虑让函数名包含参数信息,例如,使用AppendString(),AppendInt()而不是Append().

缺省参数:我们不允许使用缺省函数参数.

优点:多数情况下,你写的函数可能会用到很多的缺省值,但偶尔你也会修改这些缺省值.无须为了这些偶尔情况定义很多的函数,用缺省参数就能很轻松的做到这点.

缺点:大家通常都是通过查看别人的代码来推断如何使用API.用了缺省参数的代码更难维护,从老代码复制粘贴而来的新代码可能只包含部分参数.当缺省参数不适用于新代码时可能会导致重大问题.

结论:我们规定所有参数必须明确指定,迫使程序员理解API和各参数值的意义,避免默默使用他们可能都还没意识到的缺省参数.

变长数组和alloca():我们不允许使用变长数组和alloca().


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-35033-10.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...