回 帖 发 新 帖 刷新版面

主题:求助类的初始化问题

下面两个是点和圆的类,要对他们进行初始化,
对类Circle和Point分别使用初始化列表来对类的数据成员进行初始化,并分析在构造Circle对象前是否要先构造对象成员?同时分析析构的顺序。
这个要怎么弄?可以设两个圆的圆心都为(1,1),半径分别为2,3吗?

point类
#ifndef POINT_H
#define POINT_H


class point
{
public:
point();
point(double _x,double _y);
double dist(point &p);
double getx();
double gety();
private:
double x,y;
};

#endif
——————————————————————————————————————————————————
#ifndef CIRCLE_H
#define CIRCLE_H

class circle  
{
public:
circle();
circle(point &c,double &r);

bool isincircle(point &p);

point getc();

double getr();
public:
point center;
double radius;
};
#endif


???不解,然后顺便问一下怎么添加拷贝构造函数,是添加在point.h里面的吗???

回复列表 (共4个回复)

沙发


[em21][em21]每次都没人教我

板凳

要分析构造、析构顺序和构造顺序,教你两个办法:
一、在每个构造、析构函数里设置断点进行调试
二、在每个构造、析构函数里cout信息,用来区分不同类的诞生和死亡

至于你问怎么添加拷贝构造函数,这个你得先看书弄明白什么拷贝构造函数呀。

3 楼

补充一下:最好不要在析构函数里用cout:)因为你不知道你的东西什么时候会被析构:)
比如你整了一个全局对象,那它析构时可能cout早已析构了:)
保险点儿的办法是用printf:)

4 楼

高见~

我来回复

您尚未登录,请登录后再回复。点此登录或注册