【北京大学C++程序设计学习】——菜鸟的基础过关——类和对象

写在前面

通过第一单元的梳理后现在觉得基本的框架是有了,也清晰了很多!加油,东西是死的,人是活的!

1.内联成员函数和重载成员函数

  • 内敛成员函数:
    (1)两种定义方式:第一种用inline进行申明,放在类内,具体的实现放在类外,另外一种是将整个函数体放在类定义内部
    在这里插入图片描述

  • 重载成员函数:
    函数名字想通但是类型或者参数不一样!那就是重载了!

2. 构造函数

(1)一些概念:

  • 对象需要被初始化之后再被使用!
    然后关于构造函数,名字和类一毛一样,但是没有返回值,没有类型!
(2)属于成员函数的一种
 **名字与类名相同**,可以有参数,**不能有返回值**(void也不行)
 作用是对对象进行初始化,如给成员变量赋初值
 如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数
•默认构造函数无参数,不做任何操作

从上面观察到就构造函数而言,需要理解这几个字:对对象初始化,没有返回值


 如果定义了构造函数,则编译器不生成默认的无参数的构造函数
 对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数
一个类可以有多个构造函数

(3)需要构造函数的原因:主要就是初始化!

1) 构造函数执行必要的初始化工作,有了构造函数,就不必专门再写初始化函数,也不用担心忘记调用初始化函数。 
2) 有时对象没被初始化就使用,会导致程序出错。

关于构造函数最好是利用视频课程里面的那些代码例子来加深理解,这里就不多做介绍了,只是从概念上过一遍!

3.复制构造函数

copy constructor 也叫作拷贝构造函数
在这里插入图片描述

下面是例子, c2就是c1的一个复制品!

class Complex {
private :
double real,imag;
};
Complex c1; //调用缺省无参构造函数
Complex c2(c1);//调用缺省的复制构造函数,将 c2 初始化成和c1一样

复制构造函数起作用的三种情况:

  • 1)当用一个对象去初始化同类的另一个对象时。下面二者等价!
    Complex c2(c1);
    Complex c2 = c1; //初始化语句,非赋值语句
  • 2)如果某函数有一个参数是类 A 的对象, 那么该函数被调用时,类A的复制构造函数将被调用。
class A {
 		public: 
 		A() { }; 
 		A( A & a) {
 			 cout << "Copy constructor called" <<endl; 
 			 }
  };


自己写复制构造函数的原因!

4.类型转换构造函数

在这里插入图片描述
还是构造函数的调用!
感觉这些东西都是经常被笔试的过程中考过的!

5. 析构函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值