对象与类

面向对象编程(OOP)特性

抽象

封装和数据隐藏

多态

继承

代码的可重用性

 

类规范的组成

 

类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。

类方法定义:描述如何实现类成员函数。

 

类和结构体最大的区别在于:结构体的默认访问类型是public,而类为private

*如果函数定义位于类声明中,那么函数将自动成为内联函数

*所创建的每一个对象都有自己的存储空间,用于存储其内部变量和类成员;但是同一个类的所有对象共享同一组类方法,即每一种方法只有一个副本。

 

 

构造函数

 

使用构造函数的方法

1.显式调用构造函数

Stock food=Stock("World Cabbage", 250, 1.25);

 

2.隐式调用构造函数

Stock garment("Furry Mason",50 , 2.5);

 

new动态分配内存时:

Stock *pstock=new Stock("Furry Mason",50,2.5);

*这条语句创建一个Stock对象,将其初始化为参数提供的值,并将该对象的地址赋给pstock指针,在这种情况下,对象没有名称,但可以使用指针来管理该对象。

 

默认构造函数

当且仅当没有定义任何构造函数的时候,编译器才会提供默认构造函数,为类定义了构造函数后,程序员就必须为它提供默认构造函数。

 

定义默认构造函数的方式有两种

 

1.给已有构造函数所有参数提供默认值

Stock(const string & co="Error", int n=0,double pr=0.0);

 

2.另一种方式是通过函数重载来定义另一个构造函数——一个没有参数的构造函数

Stock();

 

*默认构造函数只能有一个

tip:在设计类时,通常应提供对所有类成员做隐式初始化的默认构造函数

 

析构函数

 

与构造函数相比,析构函数没有参数

 

什么时候调用析构函数?

如果创建的是静态存储类对象,则其析构函数将在程序结束时自动被调用。

如果创建的是自动存储类对象,则其析构函数将在程序执行完代码块时(该对象是在其中定义的)自动被调用。

如果对象是通过new创建的,则它将驻留在栈内存或自由存储区中,当使用delete来释放内存时,其析构函数将自动被调用。

 

*由于在类对象过期时析构函数将自动被调用,因此必须有一个析构函数。如果程序员没有提供析构函数,编译器将隐式地声明一个默认构造函数。

 

const成员函数

void show() const;

这种语法确保了函数不会修改调用对象。并且只要类方法不修改调用对象,就应将其声明为const

 

this指针

this指针用来指向调用成员函数的对象,this是对象的地址。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值