C/C++
文章平均质量分 58
chusky
这个作者很懒,什么都没留下…
展开
-
C++中的异常知识点小结
catch(...)捕获所有异常 有时在catch(){}中使用throw;表示不对捕获的异常做任何处理,只是再抛出异常 将throw;空语句放在catch块之外,执行这种throw会调用terminate。 将带void*参数类型的异常处理器放在具有其他指针类型的异常处理器前是个逻辑错误,因为他将捕获所有异常,后面的根本不起作用。 try块不抛出任原创 2006-02-22 20:40:00 · 960 阅读 · 0 评论 -
赋值兼容性原则
赋值兼容性原则:一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。具体表现在: 派生类的对象可以被赋值给基类对象。 派生类的对象可以初始化基类的引用。 指向基类的指针也可以指向派生类。原创 2006-02-22 20:47:00 · 2055 阅读 · 0 评论 -
volatile(读书笔记)
The grammar of volatile is the same with that of const, but volatile means "this data maybe changed besides the compilers eyeshot". For some reason, may be multitask, multithread,interrupt, this data原创 2006-02-22 20:29:00 · 775 阅读 · 0 评论 -
基类指针与派生类指针的相互转换
(1)基类指针不能直接赋给派生类指针(2)若使用显示类型转换,则正确使用指针是程序员的责任(3)由于基类指针指向的是基类对象,强制转换后,派生类指针可以正确访问到基类对象中的数据, 但是派生类对象的数据实际上是不存在的,若强行访问,则危险。基类指针,派生类指针,基类对象,派生类对象的混合匹配:1,直接用基类指针引用基类对象2,直接用派生类指针引用派生类对象3,用基类指针引用一个派生类对象,由原创 2006-02-21 23:49:00 · 2614 阅读 · 0 评论 -
inline(读书笔记)
inline is a new characteristic in the C++ language. The compiler will check the type of it, if there is not error, the code of the inline function will be put where it is invoked. While the #define ma原创 2006-02-21 23:44:00 · 751 阅读 · 0 评论 -
返回指针时应注意
在C/C++中指针的重要性是不言而喻的,有时候或许我们希望从函数中返回指针,但我们应注意,指针的有效性取决于其所指向的内存的有效性,因此我们应注意不要返回一个局部对象(当然静态的局部对象除外)。 C++中的引用也同样应该注意,在一些C++中的教程里都特别指出最好不要返回引用,(除非我们只是用返回的引用值为其他对象赋值,但此时最好是返回一个const引用类型)。 当然原创 2006-02-21 23:40:00 · 2142 阅读 · 0 评论 -
Handle Class(读书笔记)
When do we need a handle class? If we want to hide the whole information about a class, we need to define a handle class to wrap it. We just declare the class in the handle class, and implement i原创 2006-02-22 21:00:00 · 1021 阅读 · 0 评论 -
变长参数应用举例
先得声明一个变长参数的变量va_list list在使用前要先用va_start(list, last_param)对list进行初始化,last_param为最右边的已知参数,表示list从last_param的下一个参数开始va_arg(list, 类型)最后不要忘了用va_end(list)eg1:#include#include#includeusing namespace std;dou原创 2006-02-22 20:52:00 · 952 阅读 · 0 评论 -
虚函数,静态联编与动态联编(读书笔记)
静态联编与动态联编联编: 程序自身彼此关联的过程,确定程序中的操作调用与执行该操作的代码间的关系。静态联编(静态束定) 联编工作出现在编译阶段,用对象名或者类名来限定要调用的函数。动态联编 联编工作在程序运行时执行,在程序运行时才确定将要调用的函数。虚函数: 虚函数是动态联编的基础。 1, 是非静态的成员函数。2, 在类的声明中,在函数原型之前写virtual。3, vir原创 2006-02-21 23:53:00 · 1341 阅读 · 0 评论 -
C++中的static
类static数据成员是全局变量,但其作用范围是类范围,static成员只在文件范围类初始化依次,即使类没有一个对象,static成员也是存在的。如果允许的话,static成员可以被任何对象访问,也可以用二元作用域运算符通过对象访问。在C++中,当对类对象使用static时,将使所有的类对象共享成员的唯一一个副本 但static数据成员必须要在文件范围内初始化. e.g class原创 2006-02-22 21:19:00 · 907 阅读 · 0 评论 -
用引用实现多态的奇怪现象
#includeusing namespace std;class Shape{public: virtual print() const = 0;};class Point : public Shape{public: virtual print() const { cout };class Circle : public Shape{public: virtual print原创 2006-02-22 20:57:00 · 989 阅读 · 0 评论 -
several useful macros
several useful macros://macro.cpp#include #include using namespace std;#define DEBUG(x) cout #define TRACE(s) cerr #define FIELD(a) char* a##_string; int a##_sizevoid print(char c){ cout }int main(原创 2006-02-22 21:03:00 · 1016 阅读 · 0 评论