-
-
Save JeOam/f99f914046a373ec345c8175ffe3bb51 to your computer and use it in GitHub Desktop.
C++ Primer Notes
一个 const 成员函数如果以引用的形式返回 *this,那么它的返回类型将是常量引用。
IO 对象无拷贝或赋值,进行 IO 操作的函数通用以引用的方式传递和返回流。
将 failbit 和 badbit 复位,但保持 eodbit 不变:
cin.clear(cin.rdstate() & ~cin.failbit & ~cin.badbit);cout << unitbuf; // 所以输出操作后,会立即刷新缓冲区,任何输出都立即刷新
cout << nounitbuf; // 回到正常的缓冲方式警告:如果程序崩溃,输出缓冲区不会被刷新。
一旦一个程序用光了它所有可用的内存,new 表达式就会失败。默认情况下,如果 new 不能分配所要求的内存空间,它会抛出一个类型为 bad_alloc 的异常。我们可以改变使用 new 的方式来阻止它抛出异常:
int *p1 = new int; // 如果分配失败,new 抛出 std::bad_alloc
int *p2 = new (nothrow) int; // 如果分配失败,new 返回一个空指针bad_alloc 和 nothrow 都定义在头文件 new 中。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

使用
class和struct定义类的唯一区别就是默认的访问权限。public说明符之后的成员在整个程序内可被访问,public 成员定义类的接口private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private 部分封装了类的实现细节。类可以允许其他类或函数访问它的非公有成员,方法是令其他类或者函数成为它的 友元 (
friend)。如果类想把一个函数作为它的友元,只需要增加一条以friend关键词开始的函数声明语句即可。