c++是对具有相同属性和行为的一组对象的抽象与统一描述。是用户自定义的数据类型
第一点类的定义:
类是对具有相同属性和行为的一组对象的抽象与统一描述。是用户自定义的数据类型
类的定义包括行为和属性两个部分。
属性以数据表示,行为通过函数实现
由于隐藏数据是opp主要目标之一,数据项通常放在私有部分,组成类接口的成员函数放在公有部分;
不必要在类声明中使用关键字privat,因为这是类对象的默认访问控制;
public与private之间唯一的区别是,结构的默认访问类型是public,而类为prite;
<span style="font-family:SimSun;">class 类名
{
public:
公有数据成员和成员函数;
protected:
保护数据成员和成员函数; 类成员可以是数据类型,也可以是函数;
private:
私有数据成员和成员函数;
};</span>
1.类的成员可以是其他人的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。
2.类定义必须以分号“;”结束。
3.类与结构体的区别:没有明确指定类成员的访问权限时,C++结构体的成员是公有的,而类的成员是私有的。
类的构造函数和析构函数
为对象分配空间;对数据成员赋初值;请求其他资源
c++提供了一个特殊的成员函数--类构造函数,专门用于构造新对象,将值赋给他们的数据成员
构造函数没有返回值,实际上构造函数没有声明类型;
构造函数的参数标识的不是类成员,而是赋给类成员的值,因此,参数名不能与类成员相同;
当一个对象作用域结束时,系统自动调用析构函数
析构函数的作用是进行对象消亡时的清理工作
为对象分配空间;对数据成员赋初值;请求其他资源
c++提供了一个特殊的成员函数--类构造函数,专门用于构造新对象,将值赋给他们的数据成员
构造函数没有返回值,实际上构造函数没有声明类型;
构造函数的参数标识的不是类成员,而是赋给类成员的值,因此,参数名不能与类成员相同;
除了class以外,关键字struct也可以用于定义类。用struct定义类时,若不特别指出,则所有成员是共有的。例如,一个日期类的说明如下:
class Date
{
public:
void SwtDate(int y,int m,int d);
int IsLeapYear();
void PrintDate();
private:
int year,month,day;
};
Date类有三个私有数据成员:year,month和day。Date还有三个公有成员函数:SetDate用于获取对象的值,设置日期;IsLeapYear用于判断是否是闰年;PrintDate函数用于输出日期。
*成员函数在类外定义使用作用域区分符进行说明,此时函数头的形式为:
返回类型 类名::函数名(参数表)
{
函数体 }
*成员函数在类外定义使用作用域区分符进行说明,此时函数头的形式为:
返回类型 类名::函数名(参数表)
{
函数体 }
his 指针
一般来说,所有类方法都将this指针设置为调用它的对象的地址;
当参数与成员变量名相同时,如this->x = x,不能写成x = x。
静态成员:
静态数据成员在定义或说明时前面加关键字static,如:
class A
{
int n;
static int s;
};
总结:
通过本章类与对象的学习,我逐渐完成了由算法到思维的学习,我对数组结构描述了对基本的数据结构组织有了初步的了解,在过程化的程序设计中,我体会到了参数传递的过程,使用c++语言系统提供基本的数据类型的操作方式就是类与对象的核心所在,除此之外面对对象方法,为大型软件的复杂性和可用性提供了有效的可行途径,因此在下一步的学习中,我决定继续努力