![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 61
ustbsmartcar
这个作者很懒,什么都没留下…
展开
-
C++ Pointers Restrictions
指针可以操作两个实体,指针值(地址)和间访值(实体)。 指针常量:指针值不能修改的指针。 常量指针:指向常量的指针。 const int a = 78; int b = 10; int c = 18; const int* ip = &a; //const修饰指向的实体类型---常量指针 int* const cp = &b; //const修饰指针*cp-...2011-09-08 11:19:14 · 85 阅读 · 0 评论 -
C++ Reference
从逻辑上理解,引用是个别名(alias): int someInt = 5; int& rInt = someInt; //initialize 引用定义时必须初始化。 引用与指针的差别,指针可以操纵两个实体,一是指针值,一是指向的实体。引用只能操纵指向的实体。引用是一个隐性指针。...2011-09-08 11:47:54 · 57 阅读 · 0 评论 -
Avoiding side effects
int a = 3, b = 5; int c = a * b + ++b; //是先++b呢还是先a * b? cout << c << endl; 不同编译器产生不同结果; 改进后: c = b + a * b; b++; //or b++; c = b + a * b; ...2011-09-09 16:03:33 · 79 阅读 · 0 评论 -
Overloaded function call matches
C++按下列三个步骤的先后顺序找到匹配并调用函数: (1)寻找一个严格匹配,如果找到了,就用那个函数; (2)通过相容类型的隐式转换寻求一个匹配,如果找到了,就用那个函数; (3)通过用户定义的转换寻求一个匹配,若能查出有唯一的一组转换,就用那个函数。 例如,重载函数print的匹配: void print(double); void print(int); void fu...原创 2011-09-29 16:52:21 · 115 阅读 · 0 评论 -
Default parameter rules
一般情况,默认参数值在函数声明时声明的。因为在实用的程序中,函数声明总是与函数定义分离的,而在又有声明又有定义时,默认参数值自然只能置身于声明中。 以下例子是一般情况: void point(int = 3, int = 4); //声明 默认参数值,同时注意可以形参省略 void point(int x, int y) { //定义 不允许再给出...2011-09-30 15:10:53 · 78 阅读 · 0 评论 -
Inline Functions
如果频繁地调用很少语句的小函数,这些开销对性能的影响不好说。所以需要Inline Functions(内联函数),例如: #include<iostream> using namespace std; inline bool isNumber(char); //Inline Functions int main() { char c; w...原创 2011-10-08 17:23:19 · 109 阅读 · 0 评论 -
Operators
C++把操作符也看成是与函数同样性质的实体,因此可以对操作符进行函数哪样的定义。例如: #include<iostream> using namespace std; class Point { int x, y; public: void set(int a, int b) { x = a; ...原创 2011-10-17 17:50:43 · 65 阅读 · 0 评论 -
Virtual Function Mechanism
虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该...原创 2011-10-26 15:01:04 · 68 阅读 · 0 评论