圆派生圆柱体,求圆的面积,圆柱体的表面积和体积。运行后结果不对,帮我看看哪里错了。


// 设计一个圆类,从圆类派生圆柱,并设计成员函数访问相关属性(包括构造函数和析构函数的应用),计算圆面积和圆柱体的体积和表面积。
#include<iostream>
using namespace std;
const int N=3.14;
class yuan
{
    public:
    int r;
    yuan(int r)
    {
        cout<<"构造函数"<<endl;
        this->r=r;
    }
    float area()
    {
        float s;
        s=N*r*r;
        cout<<"圆面积为"<<s<<endl;
        return s;
    }
    ~yuan()
    {
        cout<<"析构函数"<<endl;
    }
};
class yuanzhu:public yuan
{
    public:
    int h;int r;
    yuanzhu(int h,int r):yuan(r)
{
    cout<<"构造函数"<<endl;
    this->r=r;
    this->h=h;
}    
void yzs()
{
    cout<<"圆柱体的面积为"<<area()*2+N*2*r*h<<endl;
}
void yzv()
{
    cout<<"圆柱体的体积为"<<area()*h<<endl;
}
~yuanzhu()
{
    cout<<"析构函数"<<endl;
}
};
int main()
{
    yuan n(1);
    yuanzhu m(1,1);
    m.yzv();
    m.yzs();
    n.area();
    return 0;

}

float类型要加f,比如1.0f不然会丢失精度