黑马c++提高学习——面向对象OOP

类和对象

类和对象
C++面向对象的三大特性为:封装、继承、多态。
C++认为万事万物皆为对象,对象上有其属性和行为
class 类名{访问权限: 属性 / 行为};

class 类名
{ 
访问属性,private,public,protected 三种访问属性
Person
};


public——公共权限——成员类内可以访问,类外可以访问
protected–保护权限——成员类内可以访问,类外不可以访问
private——私有权限——成员类内可以访问,类外不可以访问

C++程序设计允许程序员使用类(class)定义特定程序中的数据类型。这些数据类型的实例被称为对象,这些实例可以包含程序员定义的成员变量、常量、成员函数,以及重载的运算符。
语法上,类似C中结构体(struct)的扩展,C中结构体不能包含函数以及重载的运算符。

对比:在 C++ 中,结构体 是由关键词 struct 定义的一种数据类型[1]。他的成员和基类默认为公有的(public)。由关键词 class 定义的成员和基类默认为私有的(private)。这是C++中结构体和类仅有的区别。

class box
{
    public:
        int height, lenth, breadth;
        int get_volume()
        {
            return height * breadth * height;    
        }
//成员函数可以操作任意的对象,也可以访问对象中的成员,而不是直接访问这些成员变量
};

上面是将函数的主体定义在类的内部,同样函数的主体也可以定义在类的外面,定义的方式如下:

class box{
    public:
        int a, b, c;
        int get_volume();
};

outbox int box::get_volume(){
    return a * b * c;
}

当成员函数在类的外部进行定义的时候,在 :: 运算符之前必须是类的名称。在调用类的成员函数的时候,需要使用 . 运算符,和结构体的使用类似,具体操作方式如下
::是范围解析运算符,或者称为域区分符,用来指明一个函数或一个数据属于哪一个类。
::也可以不跟类名,表示全局函数或者全局数据

构造函数和析构函数——对象的初始化和清理

在生活中我们所购买的电子产品大多都有恢复出厂设置,在某一天我们不使用的时候清除自己的数据来保证自己信息的安全。
C++中每个对象也会有初识设置以及对象销毁前的清理数据的设置。是一种特殊的成员函数,它会在每次创建类的新对象时执行。

1.c++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。 
2.若没有提供任何构造函数,那么c++提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。 
3.只要类中提供了任意一个构造函数,那么c++就不在自动提供默认构造函数。 

4.类对象的定义和变量的定义类似,使用默认构造函数创建对象的时候,如果创建的是静态或者是全局对象,则对象的位模式全部为0,否则将会是随即的。 

C++构造函数的函数名必须和类名相同。
在一个类中的函数分为构造函数、自定义函数;
自定义函数:顾名思义,即可根据一个方法的具体功能取一个有意义的名字。
构造函数:它是用来构造出一个类的对象的,调用类的构造函数即创建这个类的一个实例。所以也就是为什么构造函数名就和类名要相同的缘故了。

Line::Line( double len)  : length(len)  
{
    cout << "Object is being created, length = " << len << endl;
}


//初始化列表的方式 : length(len)  类似的有:m_A(10), m_B(20), m_C(30)  效果等同于 m_A=10
上面的语法等同于如下语法
Line::Line( double len)
{
    cout << "Object is being created, length = " << len << endl;
    length = len;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值