c++的面向对象 第一节
1. 类和对象
C++是在c语言的基础上增加了面向对象编程部分的新语言(已经不新了),所以面向对象部分也是
C++的重中之重
1 . c++中的类
定义:类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法
称为类的成员。函数在一个类中被称为类的成员。
个人理解类就是许多相似对象(等下会提到)的一个公用模板,对象则是具体化的类。
就像百度百科的定义那样:类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内
存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型
的对象中的方法和变量的软件模板。
下面是类的一个具体的例子
class neme//类名{
public://访问修饰符
int a;//类中可调用的数据,被称为类的成员
}
我们可以看出,一个类是由
类名,访问修饰符,和类的成员组成
1类名: 类名故名思意,就是指类的名称,用来确定一个类,便于调用。
2类的成员,由方法和数据构成,方法指一种特殊的函数,是定义在类中的函数,可以调用对象的数据。
3访问修饰符 : 数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成
员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定
的。关键字 public、private、protected 称为访问修饰符。我们对这三种访问修饰符进行一 一介绍
(1) public 公有成员
首先来看public ,它代表的意义是公有成员,而公有成员在程序中类的外部是可以别访问的,不需要成
员函数去获得公有变量的值(在类中定义在共有区域的变量被称为共有变量)也就是说,我们可以不受限
制的去调用共有成员,举个例子把。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
class name{
public:
int a;
};
int main(){
name fi;//定义
fi.a=1;//因为a是公有成员,我们才能做到直接访问修改
cout<<fi.a;
return 0;
}
这就完成了一次简单的调用
(2) private 私有成员
定义:私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有
成员。默认情况下,类的所有成员都是私有的。例如在下面的类中,width 是一个私有成员,这意味
着,如果您没有使用任何访问修饰符,类的成员将被假定为私有成员:
正如定义所说,私有成员和公有成员区别在于调用,我们只能通过同一个类中的public成员或者是友元
(以后会提到)来对private进行调用,注意只能是同一个类中的public 调用该类中的private
举个例子
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
class name{
private: int len;//定义一个私有成员
public:
void change(){
len=1;
}
void write(){
cout<<len;
}
};
int main(){
name fi;
//fi.len=1; 像这样直接调用private会报错。
fi.change();//调用public来对其更改
fi.write();//输出
return 0;
}
(3) protected 受保护成员
定义:protected(受保护)成员变量或函数与私有成员十分相似,但有一点不同,protected(受保
护)成员在派生类(即子类)中是可访问的。
由于涉及到了派生类和继承,所以在这里不过多介绍,以后会更详细的进行介绍。大致理解成可以在
子类中调用的private即可
注意同一类中,private也是可以访问public的
我们可以发现,struct 的使用和class非常相似,没错,struct正是全是public的简单类
2 . 对象
这个对象可不是找的那个对象,(整日面向对象编程却没有对象,可怜) 指类的一个具体实现
其实在上面针对类的使用过程中我们已经用到了对象,例如
name fi;
name 是我们定义的类名,fi 则是定义的对象,fi拥有了类的特称,即类中的成员。正是在类的基础上
我们才可以定义一个具体的对象
本节内容到此就结束了,以后大概会一周一更吧。