Chinaunix

标题: 我有两个问题要问大家啊。谢谢了。 [打印本页]

作者: mengyiqianxun    时间: 2004-10-16 18:49
标题: 我有两个问题要问大家啊。谢谢了。

#include<iostream.h>;
#include<string.h>;
class Girl;
class Boy {
                char *name;
                        int  age;
public:
              Boy(char *n,int a)
                  {
                          name=new char[strlen(n)+1];
                          strcpy(name,n);
                          age=a;
                  }
                  void disp(Girl &;
                  ~Boy(){delete name;}
};
class Girl{
        char *name,*dial;
public:
          Girl(char*n,char*d)
          {
                  name=new char[strlen(n)+1];
                  strcpy(name,n);
                  dial=new char[strlen(d)+1];
                  strcpy(dial,d);
          }
          friend void Boy::disp(Girl &;
          ~Girl(){delete name,delete dial;}
};
void Boy::disp(Girl &x)
{
        cout<<"Boy\'s name:"<<name<<",age:"<<age<<"\n";
    cout<<"Girl\'s name is:"<<x.name<<",tel:"<<x.dial<<"\n";
}
void main(void)
{
        Boy b("Bill",25);
        Girl e("Eluza","0353-5316215";
        b.disp(e);
}
请问大家两个问题啊。第一呢。
我把一刚开始的class Girl;删去为什么就不行呢?下面不是已经声明了Girl类了吗?这样做不是重复了吗?
第二:倒数8行void Boy::disp(Girl &x)中的x是什么具体含义呢?
作者: beginer1    时间: 2004-10-16 19:09
标题: 我有两个问题要问大家啊。谢谢了。
一.class girl 是girl 类的声明,在boy类中用到girl 类,若不声明系统不认识girl类.
二.x是girl类对象的引用.
作者: beginer1    时间: 2004-10-16 19:20
标题: 我有两个问题要问大家啊。谢谢了。
void Boy::disp(Girl &x)
{
cout<<"Boy\'s name:"<<name<<",age:"<<age<<"\n";

//上一句多余,因为disp()只能输出 girl类对象的成员.
cout<<"Girl\'s name is:"<<x.name<<",tel:"<<x.dial<<"\n";
}
作者: mengyiqianxun    时间: 2004-10-16 19:29
标题: 我有两个问题要问大家啊。谢谢了。
哦,谢谢你们。我明白了。感谢你们,解决了我的困扰。
作者: mengyiqianxun    时间: 2004-10-16 19:51
标题: 我有两个问题要问大家啊。谢谢了。
你们好。
程序其中的x是对象的引用,但这个x并没有声明,直接就可以拿来用吗?
像这样b.disp(Girl &x)用吗?
另一个是disp(Girl&x)并不是多余的,我查了书。
原话是这样的啊:
友员函数可以引用本类对象的私有成员,这时毋须本类对象的引用参数;
还可以引用声明它是友员的类中的私有成员,这是必须有友员类对象的引用参数。
我问的问题可能对大家来说很简单,但我不怕你们笑话,你们要是笑话我,那就告诉我为什么?只要我能懂得,笑话又有什么关系呢。是不是?
作者: beginer1    时间: 2004-10-16 19:58
标题: 我有两个问题要问大家啊。谢谢了。
呵呵,共同学习我也是新手.
x 向其他形参一样,可以直接用.
作者: lenovo    时间: 2004-10-16 22:48
标题: 我有两个问题要问大家啊。谢谢了。
原帖由 "mengyiqianxun" 发表:
你们好。
程序其中的x是对象的引用,但这个x并没有声明,直接就可以拿来用吗?
像这样b.disp(Girl &x)用吗?
另一个是disp(Girl&x)并不是多余的,我查了书。
原话是这样的啊:
友员函数可以引用本类对象的私有?.........

你看的是什么书呀?
问问题看的我晕头转向的。
还是买一本好的c++入门书籍来看吧。
搜索一下本版看一下书籍介绍。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2