首先,C++是脱身与C语言的一门语言,是C语言的升级版,在有C语言的基础上,学习C++会比较容易。
一、简单认识C++
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
二、C++与C语言的关系
前言说道C++是一门脱身于C语言的一门语言,所以C语言的函数在C++上其实都是可以用的。而C++中有很多东西却是后人加上去的新功能,这些后面加上去的功能都是在C语言上无法实现的。简单的说,就是C语言可以实现的,在C++中都可以实现;但是C++中可以实现的,却不一定能在C语言中实现。
而C语言与C++最大的区别,应该就是二者的编程类型。
C语言是一种面向过程式的程序设计,而C++则是一种基于对象、面向对象的一种程序设计。
三、简述面向过程式的程序设计以及面向对象式的程序设计
C语言的编程特点是面向过程式的程序设计,是从上到下、逐步求精,会按照顺序一步步的去解决问题。这样的优点是程序的性能会比较高(比面向对象要高),而缺点是消耗高、难扩展、难维护、难复用。
而C++的编程特点是面向对象式的程序设计,其具有四大特性:封装、抽象、继承、多态。面向对象式的程序设计其优点是易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护;而缺点是性能性会比较低(比面向过程式程序设计低)。
C++面向对象式的程序设计方式使得代码变得模块化,每一个模块都可以执行一段代码,对于出错情况可以清楚快速的发现。
四、数据结构中的变量与类中的对象
C语言中有一个函数struct可以用来创建一个数据结构,在其中创建变量。而后在外部调用时可以使用这个结构体里面的变量。而C++则是可以用class来定义一个类,可以在外部也可以在内部调用类中的对象。
下面举个例子来说明一下类与结构体之间的关系
#include <stdio.h> //定义结构体 Student struct Student
{ //结构体包含的成员变量 char *name; int age; float score; }; //显示结构体的成员变量 void display(struct Student stu)
{ printf("%s的年龄是 %d,成绩是 %f\n", stu.name, stu.age, stu.score); } int main()
{ struct Student stu1; //为结构体的成员变量赋值 stu1.name = "小明"; stu1.age = 15; stu1.score = 92.5; //调用函数 display(stu1); return 0; }
上述程序为C程序,可以看见是用一个结构体定义诸多变量,接着用一个函数display使用,最后在mian函数中赋值和调用display使用。
#include <stdio.h> //通过class关键字类定义类 class Student
{ public: //类包含的变量 char *name; int age; float score; //类包含的函数 void say()
{ printf("%s的年龄是 %d,成绩是 %f\n", name, age, score); } }; int main()
{ //通过类来定义变量,即创建对象 class Student stu1; //也可以省略关键字class //为类的成员变量赋值 stu1.name = "小明"; stu1.age = 15; stu1.score = 92.5f; //调用类的成员函数 stu1.say(); return 0; }
这一段为C++程序,可以看见与上面的struct结构体非常相似,但是C++中却可以直接对对象进行操作,这是C程序中不可能实现的。这样就使得程序更加统一,出现了错误也更加容易查找。
上述两行程序,转载于http://c.biancheng.net/view/2189.html
五、C++的编译
C++的后缀一般情况下都可以使用.cpp或.cxx为后缀。但是也有一些特殊情况下会使用.cc、.c++这些比较少见的后缀情况。
在Linux中,C语言我们使用gcc命令来编译链接C程序,例如gcc main.c;gcc main.c mood.c(同时进行多个编译)。 而在编译C++时我们一般会使用g++,这样可以起到gcc对C程序的作用。第二种方式编译C++则是使用命令gcc …… -lstdc++ 这样也可以编译Linux中的C++程序。
六、类的继承性和多态性
C++对比与C语言优势之一,就是C++中类的继承性。比如我创建了一个类,其中有三个对象。我需要创建另一个类,我可以在我创建的第二个类中继承我第一个类中所有的对象进行编译。相当于有一个大类(南方的鸟类)包含了很多对象,而我再建立一个类(鸟类)就可以继承第一个类,并且添加补充,从而作为一个新的类。
而C++的多态性是什么呢?
所谓多态性就是不同对象收到相同消息,产生不同的行为。在C++程序设计中,多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,这样就可以用同一个函数名调用不同内容的函数。换言之,可以用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。
简单的说,C++中类中的对象名相同,但是在不同的类中所执行的数据(功能)会工具定义的不同而不同。以此来达到面向对象的程序设计(因为对象改变所产生的不同结果)。