【笔记】《C++Primer》 chapter7 类

6.2 参数传递

含有可变形参的函数

如果实参类型相同,可以传递一个名为initializer_list 的标准库类型

#include <initializer_list>

void error_msg(initializer_list<string> il){
    for ( auto beg = il.begin(); beg != il.end; ++beg)
        std::cout << *beg << "" ;
    std::cout << std::endl;
}

6.3 返回类型和return语句

引用返回左值

char &get_val(string &str, string::size_type ix){
    return str[ix];
}

int main(){
    string s("a value");
    cout << s << endl;
    get_val(s, 0) = 'A';
    cout << s << endl;
    return 0;
}

const_cast 和 重载

string &shorterString(string &s1, string &s2){
    auto &r = shorterString(const_cast<const string&>(&s1),
                            const_cast<const string&>(s2));
    return const_cast<string&>(r);
}

assert 预处理宏

包含在cassert头文件中,不建议以assert作为变量名

NDEBUG 预处理变量

如果定义了#define NDEBUG 则关闭调试状态

_func_ 是编译器定义的一个局部静态变量,用于存放函数的名字

_FILE_ 存放文件名的字符串字面值

_LINE_ 存放当前行号的整形字面值

_TIME_ 存放文件编译时间的字符串字面值

_DATE_ 存放文件编译日期的字符串字面值

上一篇:vector容器05之赋值操作


下一篇:Python字符串使用