从C语言过渡到C++需要理解两条基本变化:面向对象编程和类的概念。
面向对象编程
C++是一种面向对象编程语言,C语言则不是。面向对象编程将对象作为程序的基本单元,程序员利用面向对象编程语言构造出对象模型,运用特定的方法在对象之间传递消息和调用方法。对象的属性和方法封装在类中,类可以看作是对对象的模板定义。C++提供类的概念,而C语言则需要程序员自行实现一些基于结构体和函数的对象模型。
类的概念
C++类是一种用户自定义数据类型,类中包含成员变量和成员函数。类中的成员变量可以是私有的、保护的或者公共的,而成员函数可以是公共的、私有的或者保护的。另外,类还可以继承其他已有的类,包括继承成员变量和成员函数。
示例1:
#include<iostream>
using namespace std;
class Rectangle{
public:
int length;
int breadth;
int area(){
return length*breadth;
}
};
int main(){
Rectangle r1;
r1.length = 5;
r1.breadth = 4;
cout << "Area of Ractangle: " << r1.area() << endl;
return 0;
}
上述代码就是一个C++中的类的示例,定义了一个矩形类,包含了成员变量 length 和 breadth 以及成员函数 area 计算面积。
示例2:
#include<iostream>
using namespace std;
class Shape{
public:
virtual int getArea() = 0;
};
class Rectangle: public Shape{
public:
Rectangle(int a = 0, int b = 0){
width = a;
height = b;
}
int getArea(){
return width*height;
}
private:
int width;
int height;
};
int main(){
Shape *shape;
Rectangle rec(10,7);
shape = &rec;
cout << "Total area: " << shape->getArea() << endl;
return 0;
}
上述代码展示了C++中一个类的继承示例,定义了一个图形类 Shape,其中定义了一个纯虚函数 getArea(),以及一个类 Rectangle 继承 Shape 类,重写了 getArea() 函数。在main函数中,定义了一个指向形状类的指针 shape,并将其指向一个矩形对象 rec,通过 shape 访问重写的函数 getArea() 计算矩形面积。
综上所述,以上是从C语言过渡到C++之基本变化的完整攻略。通过理解面向对象编程与类的概念,适应C++的编程风格,可以更高效地编写C++代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从C语言过渡到C++之基本变化 - Python技术站