C++程序设计 类

来源:互联网 发布:mac mkv 编辑:程序博客网 时间:2024/06/17 07:38

类背后蕴含数据抽象与封装的思想。


类的一般形式

class 类名{public:公有数据与函数private:私有数据与函数};

类成员分类

按语法分类:数据成员和成员函数

按访问控制分类:公有,私有,受保护成员

按对象存储分类:静态,非静态成员

还有常量成员与非常量成员


类的界面与实现

类的界面包括数据成员,成员函数的定义,不包括成员函数的实现。

一般写代码时会将界面与实现分离,格式如下。

//.h文件class 类名{//数据成员与成员函数;};//.cppint function1{    //具体实现部分};

类的作用域

包括花括号  {}   括住的部分,类内定义的成员函数写在外面的实现部分。类中声明的标识符只在类中可见,且作用域和函数在类中声明的先后顺序无关。


类成员的访问控制


图源自百度


类的使用

创建对象时,系统自动调用构造函数完成对象的初始化。全局对象的构造函数在main()函数执行前被调用。局部对象的构造函数在程序第一次执行到声明前被调用。

对象生存期结束时,撤销对象,调用析构函数。析构函数不指定返回类型,无形参。

对象中数据成员的生存期由对象的生存期决定。

静态成员是类的组成部分,不是任何对象的组成部分;无 this 指针,不能访问非静态数据成员,只能访问类的静态数据成员。静态成员遵从正常的访问原则,可定义为public, private, protected 访问方式。若方式允许,可以不经过对象进行访问,但前面要加上 类名::

类的静态数据成员初始化需要在定义体外再定义一次,且恰好一次,常常是在实现体中再声明,且不能再用static修饰。

#include <iostream>using namespace std;//类的界面class Sample(){public:     Sample(int value);     //构造函数     ~Sample();             // 析构函数
     static void fun1();    //静态函数private:     int val;
     static int b;          //静态成员函数}
int Sample::b = 0;          //初始化静态数据成员Sample::Sample(int a){     val = a;}Sample::~Sample(){     cout << "end" << endl;}Sample obj(1);             //创建对象
Sample o1,o2;              //声明类的对象


初始化列表

需要初始化列表的有下面三种情况:

初始化引用成员数据

初始化const修饰的数据成员

初始化的数据成员是对象


常量数据

0 1
原创粉丝点击