C++继承的基本使用

本文详细介绍了C++中子类的定义、继承父类成员的使用,以及在子类和父类中同名变量和函数的优先级问题。还讨论了类外访问和对象大小计算的内存布局。
摘要由CSDN通过智能技术生成

子类的写法:class 类名:public 父类的类名。

class CF {

};
//CS,子类(派生类) CF父类(基类)
class CS :public CF{

};

子类无论是在类内还是类外都可以使用父类的成员。



class CF {
public:
	int m_cf;
	void cffun() {
		cout << "1" << endl;
	}
};
//CS,子类(派生类) CF父类(基类)
class CS :public CF{
public:
	int m_cs;
	void ccsfun() {
		m_cs = 11;
		m_cf = 10;
		cout << m_cf << "  " << m_cs << endl;
		cffun();
	}
};


int main()
{
	CS cs;
	cs.ccsfun();
	cout << cs.m_cf << "  " << cs.m_cs << endl;
	cs.cffun();

	system("pause");
	return 0;
}

作为派生类:包含了父类的成员,能够直接使用父类的成员,子类看作是对父类的扩展和延续。

当同时在子类和父类定义一个同名的变量,并在子类中定义一个函数,将这个变量赋予值,优先使用的是子类成员,如果想使用父类的同名成员,需要写出父类的类名作用域,函数也是一样。

void funMon() {
	money = 100;
	CF::money = 200;
}

在类外使用时:

cout << cs.money << "  " << cs.CF::money << endl;

计算子类的大小要包含父类的成员属性,定义对象成员顺序排布:父类成员在前,子类在后,在每一个类中取决于定义的顺序。

cout << sizeof(CS) << endl;//16
cout << &cs.CF::m_cf << endl;//0000003C79F3F858
cout << &cs.CS::m_cs << endl;//0000003C79F3F860
cout << &cs.CF::money << endl;//0000003C79F3F85C
cout << &cs.CS::money << endl;//0000003C79F3F864

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值