Jason_C_ 2021-03-26 21:43 采纳率: 0%
浏览 13

问一下为什么 基类Shape的构造函数在每次声明派生类时都执行了,但是x,y却没有被赋值

  1. #include<iostream>
    #define pai 3.14
    using namespace std;
    class Shape
    {	protected:
    	float x,y;
    	public:
    	Shape(float a,float b){x=a;y=b;cout<<x<<endl;} //就是这句话
    	virtual void area()=0;
    
    };
    class T:public Shape
    {
    	public:
    	T(float a,float b):Shape(x,y){}
    	void area()
    	{ float s;
    	s=0.5*x*y; 
    	cout<<"triangleArea="<<s<<endl;}
     }; 
    class R:public Shape
    {public:
    	R(float a,float b):Shape(x,y){x=a;y=b;} //只有在派生类的构造函数中赋值时是有效的
    	void area()
    	{
    		cout<<"rectangleArea="<<x*y<<endl;
    	}
     }; 
    class C:public Shape
    {public:
    	C(float a,float b):Shape(x,y){x=a;y=b;}
    	void area()
    	{ 
    		cout<<"circleArea="<<pai*x*x<<endl;
    	}
     };
     int main()
     {	float x1,y;
     	cin>>x1>>y;
     	T t1(x1,y);
     	t1.area();
     	R r1(x1,y);
     	r1.area();
     	C c1(x1,y);
     	c1.area();
     	return 0;
     }

 

 
  • 写回答

2条回答 默认 最新

  • lemon-l 2021-03-26 21:55
    关注

    改成Shape(a,b)

    评论

报告相同问题?

悬赏问题

  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗
  • ¥15 MOD04_3K图像预处理
  • ¥15 [VASP]关于超胞大小和k 点网格的收敛性测试
  • ¥15 pip下载paddle2onnx离谱错误
  • ¥60 db2move nlzxams import 导出db2备份数据报错