我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 【程序区活动系列】 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ unfair /'Λn'f/ə/ a. 不公平的,不正当的 ]


【程序区活动系列】

本帖被 ljpdxj 执行加亮操作(2007-11-11)
大家知道C++ 里面类机制实现了数据和函数的封装
在初始化一个person对象后,请问用什么方法可以修改类私有数据成员?

比如下面的例子:height 初始化为100.5,在初始化zhang 后我若再想修改height值(比如改为110.5),怎么实现?
Quote:

class person
{
    private:
          float  weight;
          float  height;
          cha * ID;
    public:
          person(char *PID);
            {
                this ->ID =  PID;
                this -> weight = 170;
                this -> height = 100.5;
            }
          ~person();
    ......
}

int main()
{
    person *zhang = new person("12345");
    ..........
}



[ 此帖被ljpdxj在2007-11-11 23:29重新编辑 ]
顶端 Posted: 2007-11-11 22:55 | [楼 主]
yinx



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
家族: 丢丢
发贴: 2333
威望: 0
浮云: 1260
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-05-11

5come5帮你背单词 [ shiny /'aini/ a. 照耀闪烁的,发亮的,晴朗的 ]


我用这个方法
Copy code
void Setheight(person *p, float v)
{
    float *pf=(float *)p;        //person的内存分布:4字节weight,4字节height,4字节ID地址
    pf++;           
    (*pf)=v;
}

int main()
{
    person *zhang = new person("12345");
   
    Setheight(zhang,110.5);
}


不过这不是个好方法
本帖最近评分记录:
  • 浮云:5(ljpdxj) 加起:)这个题目主要就是考查对对象空间内存镜像的 ..
  • 顶端 Posted: 2007-11-12 10:43 | [1 楼]
    yinx



    性别: 帅哥 状态: 该用户目前不在线
    等级: 人见人爱
    家族: 丢丢
    发贴: 2333
    威望: 0
    浮云: 1260
    在线等级:
    注册时间: 2006-09-15
    最后登陆: 2009-05-11

    5come5帮你背单词 [ tailor /'teilə/ n. 裁缝;vt. 缝制,裁剪 ]


    我想要一个温柔一点的、面向对象的方法~
    上面三个方法都很粗暴
    顶端 Posted: 2007-11-12 11:24 | [2 楼]
    yinx



    性别: 帅哥 状态: 该用户目前不在线
    等级: 人见人爱
    家族: 丢丢
    发贴: 2333
    威望: 0
    浮云: 1260
    在线等级:
    注册时间: 2006-09-15
    最后登陆: 2009-05-11

    5come5帮你背单词 [ damage /'dæmid3ə/ n. 损坏,毁坏,(pl.)赔偿金;vt. 损坏,毁坏 ]


    假设person类是别人实现的,
    我心目中的理想方法要符合两个条件:
    1、不能修改别人写的person类的代码。
    2、假若person类的代码被别人修改,我们不用改我们的代码仍可实现功能。


    基类指针可以指向派生类实体,不过派生类指针不可指向基类实体,不然就可以实现了
    顶端 Posted: 2007-11-12 14:19 | [3 楼]
    我来我网·5come5 Forum » 程序员之家

    Total 0.009635(s) query 6, Time now is:11-23 03:44, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号