C和C++有着许多相似之处,还有很多不同的地方,其中,最大的区别在于C的编程思想为面向过程,而C++是面向对象。
对象可以是任何事物,一只羊,一头牛,或者一个人都可以看作是一个对象,对象是一个具体的事物
相对于对象,还有类,类可以理解为类别,放在显示生活中就好比人这个概念可以理解为一个类,人只是一个统筹性的概念,只是对一个类别事物的统称。
类是对一群具有相同特征或行为的事物的统称,而对象是由类创造出来的一个具体的实例。
以动物这个类为例子,动物具有自身的属性和行为两大概念。属性就好比所有的动物都有嘴,有鼻子,有耳朵等等。因为这些属性的存在,又导致动物可以有很多的行为,好比吃饭,睡觉等等。
在C++中类的定义如下:
#include <iostream>
class Cat{};
struct Dog{};
int main(){
Cat cat;
Dog dog;
return 0;
}
如上,在C++中定义类有两种方法,class和struct,然后在其后面加上类的名字,再用大括号和“;”的格式即可。
然后在使用时,具体的类是无法直接使用的,需要通过类创建一个对象,然后再对对象进行使用。不难发现,对于对象的定义和使用和普通变量的声明和定义几乎一样。因此,在C++中,变量也可以成为对象,即万物皆对象。
首先,对struct定义的类进行学习,类中存在着属性和行为两个概念。那么在变成中,属性就可以理解为变量,行为指函数。如下:
#include <iostream>
struct Dog{
int age = 2;
void call(){
std::cout << "汪汪汪" << std::endl;
}
};
int main(){
Dog dog;
std::cout << "小狗今年" << dog.age << "岁了" << std::endl;
dog.call();
return 0;
}
如上,此时,age就是Dog类的属性,call就是Dog类的行为,将Dog示例化一个dog后dog再通过“.”的方式可以调用自身的属性和行为。通过这种方法,在编写代码的时候可以将很多问题从面向过程转移到面向对象进行处理。