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

序言

大一的时候学过一些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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值