VC++学习笔记之一

        最近在自学孙鑫老师的VC视频。自学的过程中有很多收获,俗话说“好记性不如烂笔头”,于是决定将学习中的重点内容、小技巧以及遇到的问题都记录下来。可能会比较乱,学完以后再重新作整理。

        在C语言中,struct结构体中不能有函数,而在C++中,结构体可以包含函数。

        要想使相同内容的class和struct完成相同功能,必须在class中加上“public:”

        在C++中,结构体和类可以通用,结构体是一种特殊的类,区别在于访问控制方面,struct定义的类缺省所有成员为public;而class定义的类所有成员缺省为private。

 


      类的实例和类的对象的概念是等同的,实例化一个对象=产生类的一个对象(实例)


 


      在C++中,如果一个类没有构造函数,则C++不允许创建该类的对象,但是C++编译器会没有构造函数的类提供一个默认构造函数,它只负责创建对象,不带任何参数,不做任何初始化工作。


 


      析构函数的作用是释放内存空间,不带参数且一个类中只能有一个(构造函数可有多个)


 


      函数重载构成的条件:函数的参数类型、参数个数不同,才能构成函数的重载


 


      This指针:是一个隐含的指针,它是指向对象本身,代表了对象的地址


 


      类是一个抽象的概念,在程序中它并不占据实际内存空间,只有实例化的对象才会占据物理空间


 


      类的继承访问特性:基类除了private成员不管用什么继承方式都不能被继承外,其余类型成员的继承特性采用“就低原则”,如子类以“private”方式继承基类的“public”成员,则子类对该成员的访问特性为“private”


 


      函数的覆盖:是发生在父类与子类之间的,(而函数的重载是发生在一个类当中的)


 


      “::”——作用域标识符,主要表示哪个函数是属于哪个类的,如A::a(); 表示函数a()是属于类A的


 


      关于类型转换:两种类型之间能否转换主要看它们的内存模式是否匹配


 


      多态性:(virtual)在基类的某一个函数前加上virtual后,如果子类中有相同函数就调用子类的,如果子类中没有相同函数就调用父类的


 


      纯虚函数:virtual void fun()=0; 含有纯虚函数的类叫做“抽象类”,含有纯虚函数的类不能实例化一个对象,只能为派生类服务,而派生类要想实例化对象则必须实现纯虚函数


 


      引用的概念:int a=5; int &b=a; 其中&b就是a的引用,相当于a的别名


 


      一个函数是否实现并不是看“{”和“}”之间有没有内容,而是看有没有“{”和“}”


 


      一般类的成员函数定义放在一个头文件中,实现放在一个源文件中


 


      新建文件的一个便捷方法:1)在工程目录下新建几个空白txt文件;2)分别重命名为“xx.cpp”或“xx.h”,(功能键F2实现重命名);3)Project—>Add To Project—>Files。注意:工具—>文件夹选项—>查看 中“隐藏已知文件类型的扩展名”不选


 


      在将一个类的定义分别放在头文件和源文件中时,如果头文件中为该类定义了虚函数,那么在源文件中实现虚函数时就不再加“virtual”了


 


      包含头文件时,如果用双引号,C++编译器首先从当前目录开始查找;如果用尖括号,则从系统目录开始查找。(如不确定,统一用双引号)


 


      避免头文件被重复包含可利用预编译指令# ifndef 使用方法如下:


  

# ifndef FISH_H_H 

 
 
       # define FISH_H_H 

 
 
       class Fish:public Animal 

 
 
       { 

 
 
         public: 

 
 
               Fish(); 

 
 
               void breathe(); 

 
 
       } 

 
 
       # endif