早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于派生类访问基类私有成员的问题/*编写一个程序计算出球、圆柱和圆锥的表面积和体积.要求:(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆

题目详情
关于派生类访问基类私有成员的问题
/*
编写一个程序计算出球、圆柱和圆锥的表面积和体积.
要求:
(1) 定义一个基类圆,至少含有一个数据成员半径;
(2) 定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数.
S=4*π*r(平方)
V=[4*π*r(立方)]/3
圆柱体表面积2πR^2+2πRh
体积 hπR^2
圆锥体积(1/3)hπR^2
表面积πR^2 +πrL L(母线长度)
(3) 定义主函数,求球、圆柱、圆锥的和体积.*/
#include"iostream.h"
const double pi=3.14159;
class yuan
{
double r;
};
class qiu:public yuan
{
double s,v;
public:
};
int main()
{
}除了用友员函数,我在qiu类中该如何访问基类r的值计算面积和体积?
▼优质解答
答案和解析
基类private的成员是不能够在派生类中被访问到的.你可以这样解决:一种方法是把基类中你想在派生类访问的改成protected访问权限.比如:class yuan
{protected:
double r;
};现在你可以在派生类访问r了.
另一种方法是在基类中添加一个成员函数来获取这个成员变量的值.class yuan
{
double r; public:double GetValueR(){return r;}
};现在你可以在派生类调用GetValueR来获取R值.但是注意GetValueR()这个函数的访问权限必须是public或者protected,如果它本身也是private那么就跟r一样,在派生类是无法访问的了.
看了关于派生类访问基类私有成员的问...的网友还看了以下: