ChenchenJT
2017-04-26 08:14
采纳率: 100%
浏览 1.8k

如果在C++中的子类有两个父类的数据成员,那子类的构造函数要怎么写?

我的编译器用的是VS2010,Point类是父类,Line是子类,在写Line的构造函数的时候,不知道double x2和double y2怎么赋值给Point2?
图片说明
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • hongyu83916 2017-04-26 08:30
    已采纳

    刚学JAVA,我是这样认为的,你现在感觉给Point2 初始化,无从下手,是因为,此处Point 和Line的关系,你把他们定义成了继承关系,
    左右了你。我认为你把他们定义为包含关系,这样你就不会为难了。把Point作为Line 的属性,这样就不会为难了。
    用继承描述不合适!

    点赞 评论
  • 君子黎 2017-04-26 08:31
    class Point
    {
    public:
        Point(double a, double b)
        {
    
    
        }
    };
    class Line :public Point
    {
    public:
        Line(double c, double d, double e, double f) :Point(c, d)
        {
    
    
        }
    };
    
    
    点赞 评论
  • oyljerry 2017-04-26 08:34

    你的父类只有Point,子类只有一个父类,x1,y1已经传递给父类参数了,没有Point2这个父类

    点赞 评论
  • hongyu83916 2017-04-27 02:35

    //====比如直线包含:起点,终点===
    //C++忘了,不太会,用java,你参考下
    public class Line {
    Point startP;
    Point endP;
    public Line() {
    //无参数构造
    }
    public Line(Point startP, Point endP) {
    //全参构造
    this.startP = startP;
    this.endP = endP;
    }
    //(其他方法,比如计算两点直线距离等等)
    //=====================================
    public static void main(String[] args) {
    Point start=new Point(1.2,3.2);
    Point end=new Point(1.2,3.2);

        Line line01=new Line(start,end);
    
        //===在这里就可以访问使用直线line01了
    
    }
    

    }

    class Point{
    double x;
    double y;
    public Point(double x, double y) {
    this.x = x;
    this.y = y;
    }

    }

    点赞 评论

相关推荐 更多相似问题