关于派生类访问基类私有成员的问题/*编写一个程序计算出球、圆柱和圆锥的表面积和体积.要求:(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
2019-04-13
关于派生类访问基类私有成员的问题
/*
编写一个程序计算出球、圆柱和圆锥的表面积和体积.
要求:
(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一样,在派生类是无法访问的了.
基类private的成员是不能够在派生类中被访问到的.你可以这样解决:一种方法是把基类中你想在派生类访问的改成protected访问权限.比如:class yuan
{protected:
double r;
};现在你可以在派生类访问r了.
另一种方法是在基类中添加一个成员函数来获取这个成员变量的值.class yuan
{
double r; public:double GetValueR(){return r;}
};现在你可以在派生类调用GetValueR来获取R值.但是注意GetValueR()这个函数的访问权限必须是public或者protected,如果它本身也是private那么就跟r一样,在派生类是无法访问的了.