基类中的数据成员 的访问权限为private,对于类的继承代码
时间: 2023-05-11 15:06:19 浏览: 93
,派生类能否访问基类的私有成员?
派生类不能直接访问基类的私有成员,但可以通过基类的公有成员函数来访问。这是因为私有成员只能在类内部访问,而派生类虽然可以继承基类的成员函数,但无法直接访问基类的私有成员。
相关问题
基类中的数据成员 的访问权限为private,对于类的继承实现有无影响,代码解释
如果基类中的数据成员的访问权限为private,对于类的继承实现会有影响。私有成员只能在基类中访问,不能在派生类中直接访问。但是,可以通过公有或保护的成员函数来访问私有成员。因此,在派生类中,如果需要访问基类中的私有成员,必须使用公有或保护的成员函数来实现。如果没有这样的成员函数,那么派生类就无法访问基类中的私有成员。
"The private derived class cannot use the protected members of its base class" 意思是私有派生类不能使用其基类的保护成员。这是因为私有派生类继承了基类的所有成员,但是它们都变成了私有成员,而保护成员只能被自身及其子类访问,因此私有派生类无法访问基类的保护成员。 然而,题目中说 "The private derived class can use the protected members of its base class",这是错误的。因为私有派生类无法访问其基类的保护成员,即使是在派生类内部也不行。只有公共和保护派生类可以访问其基类的保护成员。 为什么私有派生类无法访问基类的保护乘员?
私有派生类无法访问基类的保护成员,是因为保护成员的访问权限是只有类本身及其子类可以访问,而私有派生类虽然可以继承基类的所有成员,但是这些成员都被视为私有成员,只能在派生类内部被访问,而不能被派生类之外的函数和对象访问。私有派生类只能访问和使用基类的公共成员和私有成员,不能访问和使用基类的保护成员。
这是因为 C++ 对于继承权限的限制是:公有派生类可以访问基类的公有成员和保护成员,但不能访问基类的私有成员;保护派生类可以访问基类的公有成员和保护成员,但不能访问基类的私有成员;私有派生类可以继承基类的所有成员,但是这些成员都被视为私有成员,只能在派生类内部被访问,而不能被派生类之外的函数和对象访问。