c++类的定义及类成员的访问控制

时间秒杀一切 提交于 2020-01-20 01:59:25

类的定义

在c++中,类的定义方法如下

class  类名{
访问范围说明符:
    成员变量1
    成员变量2
    成员函数声明1
    成员函数声明2

访问范围说明符:
    更多成员变量
    更多成员函数声明
    ...
};

类的定义要以;结束。

 

类的基本思想是数据抽象和封装。数据抽象是一种把接口和实现分离的编程技术。类的接口包括用户所能够执行的操作,类的实现包括类的数据成员、负责接口实现的函数体和各种私有函数。
封装实现了类的接口和实现的分离。封装隐藏了类的实现,封装过后,用户只能访问类的接口,而不能访问类的实现。
类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整体。例如一个日常生活时间类,时间对象有两个属性,小时和分钟,根据需要应该能够对每个日常事务所花的时间进行操作和显示。操作和显示就需要类的接口函数。
一般的类由两部分组成:
1.类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述接口函数。
2.类方法定义:描述如何实现类成员函数。
 
简单地说,类声明给出了类的框架,而方法定义给出了类的细节。
 
 

类成员的访问控制

 
 
在定义一个类时可以规定外界对其成员的访问权限,访问权限的含义如下:
(1)public(公有的):公有成员可被与该类对象处在同一作用域内的任何函数访问。
(2)private(私有的):私有成员只能被类中的成员函数及该类的友元函数访问。
(3)protected(保护的):保护成员只能被类中成员或其派生类的成员函数或该类的友元函数访问。
 
#include <iostream>
using namespace std;

class Time{
private:
    int day;
    int month;
    int get_numbers;
public:
    Time();                                                       //默认构造函数
    Time(int h, int m = 0);                                       //显式构造函数
    Time(const Time &);                                           //拷贝构造函数
    ~Time();                                                      //析构函数
        //------展示函数show()     //在const函数中不可调用非const函数成员
    void Time::show() const
    {
        cout << "month:" << month<< "  " << "day:" << day<< "  "<<endl;
    }

};

注: 类的成员默认是私有的,而结构体成员则默认是公有的
成员函数定义的时候,也可以将函数的实现写进类声明的头文件中,但是一定要添加inline关键字。如果不让函数成为内联函数,当头文件被多个源文件引用时,会出现重定义。(inline函数是需要编译器在遇到它的地方根据它的定义把它内联展开的,而并非是普通函数那样可以先声明再链接的,内联函数并不会参与链接,所以编译器就需要在编译时看到内联函数的完整定义才行。C++规定,内联函数可以在程序中定义多次,只要内联函数的定义在一个.cpp文件中只出现一次,并且在所有的.cpp文件中,这个内联函数的定义是一样的,就能通过编译。)

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!