int v=3/4*PI*....这个肯定是错的,v会永远为0,因为3/4是整除,结果为0,0乘以任何数都是0
同样cone类的 v=1/3*PI*...也是一样的问题
改为3.0/4,和1.0/3,这样就不是整除了
另外,这么写代码也是不行的,构造函数的时候,r还没有赋值呢,这时候进行s和v初始化时的r是个垃圾值,计算出的结果也是不对的。你应该增加计算面积和体积的函数,然后在main中调用,或者构造函数传入r值时调用才行
有几个问题:
1.类的成员变量,不能在声明的时候初始化,像int s= 4 * PI * r *r;这么写是错误的
2.类的成员未初始化,不能直接使用,int s= 4 * PI * r *r;这种,r在父类中声明的成员变量,这个变量没有实例化前是不定值,s的值不会随着r的变化而变化,想计算s的值时,需要通过一个函数来触发计算。