Enclave_ 2022-04-01 09:09 采纳率: 88.5%
浏览 31
已结题

如何初始化以类为参数的

有两个类Point和Triangle 且Point不是Triangle的基类
其中Point类有两个私有数据整型x,y
Triangle类有三个私有数据

img


有参构造函数

img


参数包括3个顶点A,B,C,且默认值为Point(0,0)
测试样例在主函数写下Triangle t1;报错了,所以说构造函数
怎么写才能把A B C默认值初始化为Point(0,0)

img

#include <iostream>
#include <cmath>
using namespace std;
//点类Point
class Point
{
private:
    double x;
    double y;

public:
    Point(double xv = 0, double yv = 0); 
    Point(const Point &p);          
    ~Point();                          
    virtual void show() const;       
    void setX(double xv);              
    void setY(double yv);         
    double getX() const;                 
    double getY() const;               
};
Point::Point(const double xv, const double yv)
{ 
    x = xv;
    y = yv;
    cout << "Point Constructor run" << endl;
}
Point::Point(const Point &p)
{ 
    x = p.x;
    y = p.y;
    cout << "Point CopyConstructor run" << endl;
}
Point::~Point()
{ 
    cout << "Point Destructor run" << endl;
}
void Point::show() const
{ 
    cout << "Point(X=" << x << ",Y=" << y << ")";
}
void Point::setX(double xv)
{ 
    x = xv;
}
void Point::setY(double yv)
{ 
    y = yv;
}
double Point::getX() const
{
    return x;
}
double Point::getY() const
{ 
    return y;
}
class Triangle
{
private:
    Point A;
    Point B;
    Point C;

public:
    Triangle(const Point &a, const Point &b, const Point &c);
    ~Triangle();
};
Triangle::Triangle(const Point &a, const Point &b, const Point &c)
{
    A = a;
    B = b;
    C = c;
}

//主函数
int main(void)
{
    double x, y;
    Point p1, p2(1, 1), p3(2, 2);
    Triangle t1;
    return 0;
}
  • 写回答

1条回答 默认 最新

  • Frank_Liuxing 2022-04-01 09:25
    关注

    真是无语,复制代码不行吗,非要贴图。
    再写一个不带参数的构造函数。

    Triangle()
    {
        A.x  = 0;
        A.y = 0;
        B.x  = 0;
        B.y = 0;
        C.x  = 0;
        C.y = 0;  
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 修改了问题 4月1日
  • 修改了问题 4月1日
  • 展开全部

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程