24小时热门版块排行榜    

查看: 1830  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

freedomice

金虫 (正式写手)

[求助] C++程序求助 一个类对象做为另一个类的私有数据成员

CODE:
#ifndef _Slope_h
#define _Slope_h

#include "Dot.h"     //一个点类
#include "Soil.h"
#include "Ratio.h"   //一个斜率类(知道两点求斜率和中垂线斜率等)

class Slope
{
public:
        Slope();
        Slope(double H , double slopeangle , Soil SOIL);
        void SetData();
        double CircleArc(Dot c,double r,double x);
        Dot MidDot(Dot D1,Dot D2);
        void DataCollection(Dot CircleCentre,double R);   //数据搜集
        double SimplifyBishopMethod();
        void Search();
        void Disp();


private:
        double Height;                                       
        double SlopeAngle;                               
        Soil So;                                               

        Dot A,B,C;
        Ratio AB,AC;

        double SliceWeight[10];                        //土条重量
        double SliceAngle[10];                        //条块中心线与圆心连线的夹角
        double BishopSafetyFactor;                //毕肖普法安全系数
        double SwedenSafetyFactor;                //瑞典法安全系数
        double Width;                                        //条块宽度
};

#endif
————————————————————————————————————
Slope::Slope(double H , double slopeangle , Soil SOIL)
{
        Height = H;       
        SlopeAngle = double (SlopeAngle * PI)/ 180;
        So = SOIL;

        Dot A;
        Dot B( (double)Height / tan(SlopeAngle) , Height );
    Dot C( (double)Height / tan(SlopeAngle)*1.1 , Height );

        Ratio AB(B);
        Ratio AC(A,C);
        Width = C.GetX() / 10;               
}
——————————————————————————
#include
#include "Slope.h"
#include "Soil.h"


void main()
{
1        Soil soil1(10,20,20,20);
2        Slope slope1(10,45,soil1);
3        slope1.Search();
4        slope1.Disp();
}

+++++++++++++++++++++++++++++++++++++++++++++++
以上是部分代码(只贴出了相关的3段)。请有耐心的虫友帮忙看一下。
第2行创建Slope对象slope1的时候赋值正常。
但是这个赋值到第三行调用Search函数的时候发生变化了。
不知道为什么。
需要的话继续贴。
可能看起来很费劲,先谢谢了。

[ Last edited by jjdg on 2012-11-23 at 01:42 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ioadong

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-11-24 15:05:16
"第2行创建Slope对象slope1的时候赋值正常。
但是这个赋值到第三行调用Search函数的时候发生变化了。"
不是很明白这个问题描述,你的意思是赋值语句的执行结果没有问题,但是在执行Search函数后slope1本身的值发生变化了?

» 本帖已获得的红花(最新10朵)

以科学的理性代替天然的非理性。
3楼2012-11-24 10:51:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

enrity

铁杆木虫 (正式写手)


jjdg: 金币+1, 感谢参与 2012-11-24 15:05:07
你得把Search()也帖出来啊
2楼2012-11-23 03:19:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

freedomice

金虫 (正式写手)

送鲜花一朵
引用回帖:
3楼: Originally posted by ioadong at 2012-11-24 10:51:27
"第2行创建Slope对象slope1的时候赋值正常。
但是这个赋值到第三行调用Search函数的时候发生变化了。"
不是很明白这个问题描述,你的意思是赋值语句的执行结果没有问题,但是在执行Search函数后slope1本 ...

后来我找人看过了
是初始化的问题
因为我用了一个类对象做为另一个类的数据成员
构造函数需要用参数列表
不能像一般构造函数那样直接写

我所看的书里没注意的这个问题
现在知道了构造函数参数列表这回事
但是仍然不是很懂
4楼2012-11-24 11:25:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见