(1) c++的面向对象 第一节

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拥有了类的特称,即类中的成员。正是在类的基础上

我们才可以定义一个具体的对象

本节内容到此就结束了,以后大概会一周一更吧。

原文地址:https://www.cnblogs.com/rpup/p/14162204.html