| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:求助 c++类组合 疑问
只看楼主 加入收藏
liuyjh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-1-18
收藏
 问题点数:0 回复次数:3 
求助 c++类组合 疑问
[color=DeepSkyBlue]#include"iostream.h"
#include"string.h"
class StudentID
{public:
 StudentID(int id=0)
 {value=id;[size=5][size=4]
[/size]
 cout<<"assigning student id"<<value<<endl;
 }
 ~StudentID()
 {cout<<"Destructing id"<<value<<endl;
 }
 protected:
 int value;
};
class Student
{public:
 Student(char *pname="noname",int ssID=0)
 {cout<<"construcing"<<pname<<endl;
  strcpy(name,pname);
  name[sizeof(name)-1]='\0';
  StudentID id(ssID);
 }
 protected:
 char name[20];
 StudentID id;
};
void main()
{
 Student s("randy",9818);
}
我的问题是这样的  当Student对象s建立时 调用Student类构造函数
第一 先初始化student类数据成员char name[20];
第二 初始化student类数据成员StudentID id;时候
没有StudentID类的默认构造函数都能编译 这是总么回事????

那位大哥帮小弟说说  详细的初始化过程[/size]
[/color]
搜索更多相关主题的帖子: 疑问 
2008-01-18 17:08
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include"iostream.h"
#include"string.h"
class StudentID
{
  public:
  StudentID(){}
  StudentID(int id)
  {
    value=id;
    cout<<"assigning student id"<<value<<endl;
  }
~StudentID()
{cout<<"Destructing id"<<value<<endl;
}
protected:
int value;
};
class Student
{
public:
Student(char *pname="noname",int ssID=0)
{
    cout<<"construcing:"<<pname<<endl;
    strcpy(name,pname);
    name[sizeof(name)-1]='\0';
   StudentID     id(ssID);
}
protected:
char name[20];
StudentID id;
};
void main()
{
Student s("randy",9818);
}
我的需要默认构造函数的,要不编译不能通过啊
2008-01-18 18:04
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
代码风格很糟糕。字体也很糟糕。
[color=#800000]#include"iostream.h"
#include"string.h"

class StudentID {
public:
    StudentID(int id=0)
    {
        value=id;
        cout<<"assigning student id"<<value<<endl;
    }
    ~StudentID()
    {
        cout<<"Destructing id"<<value<<endl;
    }
protected:
    int value;
};

class Student {
public:
    Student(char *pname="noname",int ssID=0)
    {
        cout<<"construcing"<<pname<<endl;
        strcpy(name,pname);
        name[sizeof(name)-1]='\0';
        StudentID id(ssID);
    }
protected:
    char name[20];
    StudentID id;
};

int main()
{
Student s("randy",9818);
return 0;
}
[/color]

[[italic] 本帖最后由 lonmaor 于 2008-1-18 19:56 编辑 [/italic]]
2008-01-18 19:52
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的没必要这样说..你即使强也是一步步来的.这样说下次就没人敢发帖子了
2008-01-18 21:41
快速回复:求助 c++类组合 疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017544 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved