第2课 掌握C++

1. 定义结构体和类时别忘记在最后加入  "" 号!例如 Class Point{int x;int y;};
2.#include <xxx.h>  #include "xxx.h"的区别: <>不查找运行时目录,""查找运行时目录!
3. 类的定义中,如果未指明成员类型,则缺省为  private.而结构体中则缺省为public.
4. 引用:引用经常用在函数的传参上。另外数值交换函数也经常用引用。例
change(int &x,int &y){int temp;temp=x;x=y;y=x}  调用时即可以用 int a=3;int b=4;change(a,b);一般不用指针来作为参数进行数值交换。因为会引起歧义。
5. 通常将类的定义放 .h 文件,而将其实现放在  cpp文件中,别忘记了在cpp文件中 #include "xxx.h"
6. 如何防止类的重复定义?
#inndef Point_H_H
#define Point_H_H
class Point{};
#endif 来防止
7. 源文件 cpp  文件单独编译成 obj文件。最后由链接器将与将要使用到的 C++标准库类链接成exe文件,头文件不参加编译。所以在 cpp文件中别忘记了加入#include "xxx.h"
8. 函数的覆盖,在子类中重写父类的函数,此时采用早期绑定的方法。如果加入了  virtual,则将采用迟绑定的技术,在运行时根据对象的类型确定调用哪一个函数。此迟绑定技术是 MFC的类的继承的精髓。
9. 强制类型转换。如果 CFish  CAnimal派生而来。则可以将鱼的对象转换为 CAnimal的对象,而反之则不行。从现实中理解也是正常的,鱼可以是动物,而动物却不是鱼。再如 int可以强制转换成char型。而反之则出错。
10  包含头文件时,<> ””是不同的。<>表示编译器从系统目录下开始搜索,然后再搜索 PATH环境变量所列出的目录,不搜索当前目录,找不到就出错。而 ””则表示先从当前目录搜索,然后才是系统目录和 PATH环境变量列出的目录。所以,如果头文件在系统目录下,就用 <>,如果头文件在当前目录下,就用 ””,这样可以加快搜索速度。
11  在类的头文件(*.h)的开头,一般定义有如下宏:
#ifndef ANIMAL_H_H
#define ANIMAL_H_H
Class ***
……
#endif
这么做就是为了避免类重复定义。

猜你喜欢

转载自blog.csdn.net/zhang_zxk/article/details/52401875