返回列表 回复 发帖

Re:【讨论】编程

听君一分析,胜读十本书。
静态绑定类的成员函数调用还可以理解。我想知道的是:如果boy和girl类中定义有相同的数据(变量)的话,这些数据应该是动态的吧?也就是说the_pretty_home 和 the_handsome_home 会有相同的数值?
习惯了无聊,不无聊时才知道无聊是多么的不无聊。

Re:【讨论】编程

Thermo太谦虚了。高水平的人就是不一样,难怪“自从小小结婚以后,眼中只有Thermo”~~
好象变量没有上述“覆盖”之类的概念啦。变量是谁的就是谁的,在the_pretty_home 和 the_handsome_home 会是各自不同的值。

Re:【讨论】编程

July,真的是你吗?你在学校里也学计算机语言吗?你的计算机知识好象在猛长耶!

我的意思是如果boy类中定义有变量比如age=21文(as the defualt value),和girl类中age=25, 在将pretty赋给the_hansome_home时,age会是什么?
习惯了无聊,不无聊时才知道无聊是多么的不无聊。

Re:【讨论】编程

你好啊
作个朋友

Re:【讨论】编程

thermo真厉害,问题非常深入,有些问题确实出乎意外。我试了一下,那样得到的age是一个不定的值,也就是说the_hansome_home无法取到age的值。

我按你的意思在程序中加了age,如下:

#include <iostream.h>

class boy//男人类
{
public://他敞开胸怀
  int age;
  void LoveYou(float result)
  {
    cout << "Preety, I love you, marry me! My age is:" << age << endl;
  }
  void KissYou(float result)
  {
    cout << "Pretty, you are too sexy, I want to kiss you...my age is:" << age << endl;
  }
};

class girl : public boy//上帝说女人是……
{
public://她也敞开胸怀……我什么都没看见:)
  int age;
  void LoveYou(int result)
  {
    cout << "I love you too...But I am too shy to say...My age is:" << age << endl;
  }
  void KissYou(float result)
  {
    cout << "You do what you want...My age is:" << age << endl;
  }
};

void main(void)
{
  girl  pretty;//一个女孩叫pretty
  boy   handsome;//一个男孩叫handsome

  pretty.age=25;
  handsome.age=21;

  girl  *the_pretty_home   = &pretty;//女孩说:我不要离开家……不嫁给你(真的?)!
  boy   *the_handsome_home = &pretty;//男孩说:来我家吧,我爱你!

  boy   *the_handsome_Boyhome = &handsome;

////////////////////////////////////////
//----------?????他们在干什么呀?请写出结果-------------

  the_handsome_home->LoveYou(52.1f);
  the_pretty_home  ->LoveYou(52.1f);

  the_handsome_home->KissYou(52.1f);
  the_pretty_home  ->KissYou(52.1f);

  the_handsome_Boyhome->LoveYou(52.1f);
  the_handsome_Boyhome->KissYou(52.1f);
////////////////////////////////////////
}

输出结果是:
Preety, I love you, marry me! My age is:4219448
I love you too...But I am too shy to say...My age is:25
Pretty, you are too sexy, I want to kiss you...my age is:4219448
You do what you want...My age is:25
Preety, I love you, marry me! My age is:21
Pretty, you are too sexy, I want to kiss you...my age is:21

说明the_handsome_home根本就得不到任何类的age值。the_handsome_home只能访问被隐藏的成员函数,而不能访问到变量。

Re:【讨论】编程

真有些出乎意料,我原猜想The_handsome_home会被初始为girl的age。也许如果用赋值的方式的话The_handsome 才会有girl’s age。

C++难学就在于有些东西是在编译阶段处理的,有些却要等到运行。前者偏于约定,后者纯属逻辑。C++看过却没用过。不怕他笑话,我用得最多的是Fortran,老式的工程计算语言。

你的Linux弄得怎么样了?我前两年装过Red Hat,上星期装了红旗服务器版本2.0(找不到3.0),后来发现有的东西太老了,干脆重装了新的红旗桌面版。自己下载了apache,Perl,PHP和MySQL。今天才重装好。如果你碰到有什么问题的话也许我能点忙。我一直用Unix系统,所以比较熟
习惯了无聊,不无聊时才知道无聊是多么的不无聊。

Re:【讨论】编程

我猜想The_handsome_home会被初始为boy的age……结果让我大跌眼镜,呵呵
C++我几乎没用过,我害怕使用它,尽量使用C来写。后来还有MFC的框架太痛苦,就转为Delphi了。一个朋友也这样说“c++太深奥了,越来越不敢碰;-)”呵呵。任何语言只是一个描述工作的工具,关键看解决的问题方式,写程序象写文章一样,不同的思路和不同的方法,都是一种艺术。
我是个UNIX盲,以后全靠你啦,嘻嘻。Fortran我完全不懂。以前我用过一段时间的Turbo Linux,记得一些命令而已。Linux下的编程完全不懂。现在装RedHat Linux 8。本打算好好研究一番,朋友托我写个程序,现在只好忙编程了。感觉时间太少了

Re:【讨论】编程

我说“初始”并不确切,我真正意思是指“男孩说:来我家吧,我爱你!”的时刻。我相信你的猜想并没错,只是男孩说完后,他就找不到家了。

Fortran是所谓的“scientific computational language”,没有几个人会。其实和C差不多。以后也许会被C慢慢替代。

Linux下编程选择很多,你会慢慢喜欢的。
习惯了无聊,不无聊时才知道无聊是多么的不无聊。

Re:【讨论】编程

明白。Thermo越来越幽默了,哈哈
这问题把我也搞昏掉了……还是Delphi亲热:)
对于Linux,我的路还很远……

Re:【讨论】编程

我最近比较忙。没有精力把这个论坛搞得活跃起来。我想退位让给你。你和wmsztw都有主持论坛的经验。你们一定会搞得很好。

我当然还会经常来的。你看怎么样?
习惯了无聊,不无聊时才知道无聊是多么的不无聊。
返回列表