-
-
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
关键词开始的函数声明语句即可。