Professional C++ 6th by Marc Gregoire

Professional C++ 6th by Marc Gregoire

Jiahe Lv
Tianjin, China
创建于 | 更新于
1 min read

Part I : Introduction to Professional C++

1 A Crash Course in C++ and the Standard Library

P.41

main函数要么没有参数,要么有两个参数:

int main(int argc, char** argv)

需要注意的是,argv[0]可能是程序名,也可能是空字符串,应该使用平台特定的函数来获取程序名。

P.43

std::endl\n的区别在于,std::endl在流中插入新行时会清空buffer缓冲区,而\n不会。频繁使用std::endl开销成本大。

P.45

命名空间别名:

namespace MyFTP = MyLibraries::Networking::FTP;

P.49

C++中同样可以使用C中的常量来获取数值极限,如INT_MAX。但是在C++中更推荐使用<limits>中的模版std::numeric_limits。如:

println("int:");
println("Max int value: {}", numeric_limits<int>::max());
println("Min int value: {}", numeric_limits<int>::min());
println("Lowest int value: {}", numeric_limits<int>::lowest());

println("\ndouble:");
println("Max double value: {}", numeric_limits<double>::max());
println("Min double value: {}", numeric_limits<double>::min());
println("Lowest double value: {}", numeric_limits<double>::lowest());

需要注意,对于整数来说,min()lowest()结果相同;但是对于浮点数来说,min()结果为可以表示的最小正数,而lowest()结果为可以表示的最小负数。

P.54

运算符优先级

1. ++ −− // postfix, 后缀
2. ! ++ −− // prefix, 前缀
3. * / %
4. +
5. << >>
6. &
7. ^
8. |
9. = += -= *= /= %= &= |= ^= <<= >>=

Comments