0
点赞
收藏
分享

微信扫一扫

C++继承、成员访问权限

胡桑_b06e 2022-01-28 阅读 141
c++

继承

继承可以让子类拥有父类的所有成员(变量/函数)。

C++中没有像Java、Objective-C的基类。

#include <iostream>
using namespace std;

struct Person {
	int m_age;
};

struct Student : Person {
	int m_no;
};

struct GoodStudent : Student {
	int m_money;
};

int main() {

	Person person;
	cout << sizeof(person) << endl; // 4

	Student stu;
	cout << sizeof(stu) << endl; // 8
	
	GoodStudent gs;
	cout << sizeof(gs) << endl; // 12

	getchar();
	return 0;
}

父类的成员变量在前,子类的成员变量在后。

在这里插入图片描述

成员访问权限

成员访问权限、继承方式有 3 种:

  • public:公共的,任何地方都可以访问(struct默认)
  • protected:子类内部、当前类内部可以访问
  • private:私有的,只有当前类内部可以访问(class默认)

struct默认是public继承,class默认是private继承。

子类内部访问父类成员的权限,是以下 2 项中权限最小的那个:

  • 成员本身的访问权限
  • 上一级父类的继承方式

开发中用的最多的继承方式是public,这样能保留父类原来的成员访问权限。

访问权限不影响对象的内存布局。

#include <iostream>
using namespace std;

class Person {
private:
	int m_age;
public:
	void run() {

	}
};

class Student : public Person {

};

class GoodStudent : public Student {

};

int main() {

	getchar();
	return 0;
}
举报

相关推荐

0 条评论