C++基础-类的基本概念

来源:互联网 发布:研究生软件辅导机构 编辑:程序博客网 时间:2024/05/21 05:06

序言

大一的时候学过一些C++的东西,但是主要以C为主,后来C++也很少用到,现在重新学习C++基础知识。


  • 封装

    • 面向对象程序设计最基本的特性。

    • 作用:

      • [1] 把属性和方法进行封装:把数据(属性)和函数(方法)合成一个整体,在计算机中用对象实现

      • [2] 对属性和方法进行访问控制:访问权限的限制。把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类或者对象操作,对不可信的进行信息的隐藏

  • 类和对象

    • 类:类是把属性和方法进行封装,同时对类的属性和方法进行访问控制。通常类的定义包含两部分内容

      • [1] 属性:如“人类”这个类,属性包括姓名、年龄、体重等

      • [2] 方法:如“人类”这个类,方法包括吃饭、睡觉、说话等行为

    • 对象:现实世界的实体抽象,如“人”、“自行车”等
  • 类的定义

class 类名{    public:        //方法或属性    protected:        //方法或属性    private:        //方法或属性};//类定义时,public,private和protected关键词的出现顺序可以是任意的
class Point{    public:         void setPoint(int x, int y);        void printPoint();    private:        int xLabel;        int yLabel;    protected:        int quadrant;};
  • 类的实现
    类的实现就是完成其方法的过程,上述代码只是完成了属性和方法的声明。

    • [1] 类定义时完成对成员函数的定义

    • [2] 类定义的外部进行完成:需要加作用域操作符

//类内实现:点类class Point{    public:         void setPoint(int x, int y)        {            xPos = x;            yPos = y;        }    protected:        ...    private:        ...};//类内实现:圆类class Circle{    private:        double r;            //圆类的半径属性    public:        void setR(double r)  //设置圆的半径        {            this->r = r;        }        double getR()        //获取圆的半径        {            return this->r;        }};//类外实现void Point::setPoint(int x, int y){    xPos = x;    yPos = y;}
  • 类的使用
int main(){    Point M;                    //类创建对象    M.setPoint(10, 20);         //函数调用    M.printPoint();             //函数调用    cout<< M.xPos <<endl;       //通过对象访问属性    return 0;}
  • 类的成员访问权限

    为什么要有访问权限限制,有些需要给外面看的,也就是对外接口,那么就是public;不想让别人知道内部的实现细节,那么就是private;如果不想让别人知道,想让自己的孩子什么都知道(这里涉及到继承),那么就可以作为protected

    • public:

      • 可以被 该类中函数 + 其友元函数 + 派生类的函数 + 该类的对象访问;
    • protected:

      • 可以被 该类中函数 + 其友元函数 + 派生类的函数 访问;

      • 不能被该类的对象访问

    • private:

      • 只能由 该类中函数 + 其友元函数 访问;

      • 不能被 该类的对象派生类(子类) 访问

这里写图片描述

  • 类的继承方式

    • public 继承:公有继承时,不改变基类成员的访问权限

    • protected 继承:保护继承时,将基类中public成员变为子类的protected成员,其它成员的访问权限不变

    • private 继承:私有继承时,使得基类所有成员在子类中的访问权限变为private



Acknowledgements:
http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html
http://www.cnblogs.com/cocos2d-html/p/3629146.html
http://cnmtjp.blog.51cto.com/204390/36548
http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html

2017.09.25

原创粉丝点击