40 - 50知识点

1、转换构造函数(将整数转化成类类型)

  • 参数满足下列条件时称为转换构造函数
    — 有且只有一个参数
    — 参数是基本类型
    — 参数是其它类类型

转换构造函数被 explicit 修饰时只能进行显示转换
— 转换方式
   1、static_cast<Test>(100);
   2、Test(100);
   3、(Test)i;          //不推荐
   
2、类型转换函数(将类类型转换成其它类型)

  • C++类中可以定义类型转换函数
  • 类型转换函数用于将类对象转换成其它类型
  • 语法规则:
operator Type()
{
	Type ret;
	//...
	return ret;
}

— 无法抑制隐式的类型转换函数调用
— 类型转换函数可能与转换构造函数冲突
— 工程中以 Type toType() 的公有成员代替类型转换函数。

	Value toValue()     		//Test类类型转换成Value类类型
	{
		Value ret;
		cout << "Value toValue() " << endl;
		return ret;
	}

3、继承

继承,意思是子类能访问父类的成员;只是能用,但是本质还是父类的。

没有显式调用父类的构造函数,所以默认就是调用无参构造函数

  • 构造规则
    — 子类对象在创建时会首先调用父类的构造函数
    — 先执行父类构造函数再执行子类的构造函数
    — 父类构造函数可以被隐式调用或者显示调用
  • 对象创建时构造函数的调用顺序
    1、 调用父类的构造函数
    2、 调用成员变量的构造函数
    3、 调用类自身的构造函数

口诀心法:先父母,后客人,再自己

4、父子间的冲突

1、子类没有定义父类的同名成员函数:
那么子类对象是可以访问父类的成员函数的

2、子类定义了父类的同名成员函数:
子类访问的就是子类自己的成员函数,父类的同名函数就会被隐藏。子类对象不能调用父类里面的函数,要加上作用域分辨符才能调用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值