首页 > 代码库 > 知识网之C++总结

知识网之C++总结

           米老师常说的一句话:构造知识网。 马上要考试了,就让我们构造一下属于C++的知识网。首先从整体上了解C++:

            

       从图中可以了解到,主要有五部分,而当我们和之前的知识联系的话,也就剩下模板和运算符重载以及基础中的某些特性。这话怎么说呢??函数在VB中学过一些,多少有些底子和灵感,数组和指针在《数据结构导论》中学习过,所以这部分也不是难点。那么这样来看的话,C++也就没有想象中的那么难了,复习也就不至于一抓瞎了。首先来看一个详细的图:

    

          就像图中显示的那样我们还是要注意以下几点:

 1.<标识符>

          下划线或字母开头;

          不能与任意一个关键字同名;

          区分大小写;

2.<函数>

       1)原型:不涉及参数的默认值问题,只是声明类型而已。

       2)纯虚函数和虚函数:两者都使用virtual关键字,但不同的是,虚函数的子类可以不重写而直接继承父类,也可以重写。而纯虚函数的子烈必须重写才可以使用。另一方面,   像这句代码显示的:virtual   void  Show()=0 的是纯虚函数,而定义名为Show的虚函数并不需要使用"=0”;

       3)strcpy:拷贝构造函数,形参都为引用,同时为了不改变形参的值必须使用常成员函数的关键字Const。

       使用该函数的三种情况:

            ·程序中需要建立一个对象,并用另一个对象对它实例化

            ·函数的参数为类的对象

            ·函数的返回值是类的对象

         注:当使用该函数赋值字符串时,对于double、int类型的直接使用“=”进行赋值即可。

       4)模板:符号<T>,不论是成员函数还是构造函数调用时都要使用标识符"<T>";

       5)const:它用来限定一个变量不允许被改变,并且限定符声明的对象只能被读而不被修改;常对象在定义时必须进行初始化,而且不能被更新。

       6)内联:inline

           注: 宏函数有预处理器对宏进行替换,内联函数通过编译器实现。

       7)友元:(friend),不是当前类的成员函数,而是独立于当前类的外部函数。当在函数主体中使用时,可以直接使用函数名和类型,如DateTime(d,t);并且在外部声明  时也不用像成员函数一样在前面加上“类名::”

      8)递归:像《数据结构导论》中讲的那样,一个函数在函数体中调用了自身。

3.<重载>

     1)运算符重载

           在C++中不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;其中不能重载的运算符只有5个(. 、.*、-> *、::、?:)

           重载运算符的函数不能有默认的参数,重载的运算符必须和用户定义的自定义类型的对象一起使用,不允许参数全部是C++的标准类型。

      2)函数重载

             函数重载必须参数类型不一样或者参数个数不一样,而不能依靠返回值类型来区分重载函数。

   PS:重写和重载的区别:

        *    重载必须咋同一个类中,方法名必须相同,并且参数列表不能相同。

        *    重写是在不同的类中,发生重写的两个方法返回值、方法名和参数列表必须完全一致。子类方法的访问级别不能低于父类相应方法的访问级别;方法体不同。 

       

       混到现在的份上,VB、C#和vb.net都已经学过,才慢慢的发现在编程语言中的共鸣,这几种编程语言都有相通之处,只是和人类一样,都有各自与众不同的一面。那么只要搞清楚它们的不同也就够了。也许这就是我的知识网。

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

知识网之C++总结