C++和C#语法学习后的总结
经过这几个月的学习,在这里做个总结。最先开始是重新学习C++的语法,接下来学习C#,C#的语法和C++很相似,C#没有指针,不支持多继承,但可以继承多个接口,算是弥补不能多重继承类,C#中全部都是类封装起来,没有单独的变量或函数,main()函数也是在一个类中。以下是具体的总结:
1、C++方面(这里我只讲诉对于我之前没完全掌握的东西,略微凌乱)
1)重载:有函数重载和运算符重载,都是根据变量的数量或者类型不同而调用不同的行为。实现“一词多用”,减少相似功能编写带来的重复命名问题。
2)字符串:字符串类型,现在字符串连接或比较也可以通过熟悉的运算法则进行计算,减小了在C语言里面进行一个个字符的操作带来的麻烦。也是靠重载实现。
3)引用:功能可以理解为指针的兄弟,和指针的功能很相似。(引用为变量起一个别名,共用同一地址,当使用引用作为函数参数,可以扩充函数传递数据的功能)如:void max(int &a , int &b)
4)类:类是最关键的。类相对C语言中的结构体显得更加丰富,其中有变量和方法,加上继承关系,可以把现实的事物属性、事物与事物之间的关系描述得更具体。类可以看成一个虚拟抽象的事物,但结构体还只是事物的一些片面的数据。在C#中全是类,把一些文件与文件之间都是以类为个体进行交流。
5)继承关系:总之理解优先级 :private>protected>public
6)多态性:发同一指令,子类执行不同的功能。多态性是要结合抽象类或接口来实现,抽象类只声明不定义相应的行为方法,各子类通过继承父类,根据自己属性来定义实现不同的函数功能。实现多态方法为:子类赋值给父类,通过父类调用相应的抽象方法来实现多态功能,使同一个函数名在各不同的子类根据自己的特性实现不同的功能(多态)。在C#中也可以通过继承接口来实现多态。
2、C#方面:
1)事件:通过委托作为管理机制,当触发时调用相应的在委托中注册的事件处理函数。这里我把它理解为单片机里面的“外部中断”。
2)多态:通过抽象类或者接口实现多态。书上的一句话:门(抽象类)定义了你是什么,接口(锁)规定了你能做什么。
这里对于抽象类和接口的理解的话,我理解为抽象类虽然包含了抽象函数,但是它还是一个抽象的个体事物,其可以包含其他属性;而接口只是一些抽象函数的集合体,为C#不能多重继承而服务,它并不是一个个体事物。(个人理解,可能不恰当)
由于 C#只支持单继承,想要继承更多的函数功能,因此可以继承多个接口。