| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5636 人关注过本帖
标题:关于类中定义结构体的问题,不懂,望指教
只看楼主 加入收藏
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
关于类中定义结构体的问题,不懂,望指教

#include<iostream>
using namespace std;
struct day
    {
    int year;
    int month;
    int daty;
    } m;
class man
{
    int number;
    char sex;
    int id;   
    ;
public:
   
    man(int a,char b,int c) {number=a;sex=b;id=c;}
    void jin() {
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>m.year>>m.month >>m.daty ;
    cout <<endl;}

    void chu() {
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        cout <<"出生日期为:"<<m.year <<m.month <<m.daty <<endl;}

};
main()
{   
    int input,output;
    man k();
        input=k.jin();
    output=k.chu();
}
这个程序错误   left of '.jin' must have class/struct/union type

类中使用结构体是怎样使用的……这个问题好不懂,如果能举个例子来就更好了,谢谢
搜索更多相关主题的帖子: 定义 结构体 指教 
2010-12-16 21:17
zhj123
Rank: 2
等 级:论坛游民
帖 子:39
专家分:21
注 册:2010-8-31
收藏
得分:0 
我也是来学习滴,看了一下,  int input,output;
        input=k.jin();
    output=k.chu();类型和类定义的不一样,类里的把void改为int后返回值return 0;可以减少一些错误,可是最后还是不行
还有那个man k()不能解解
也想看看其他人是怎样做的
2010-12-16 21:55
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include<iostream>
using namespace std;
struct day
    {
    int year;
    int month;
    int daty;
    } m;
class man
{
    int number;
    char sex;
    int id;   
public:
    man(int a,char b,int c) {number=a;sex=b;id=c;}
    void jin() {
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>m.year>>m.month >>m.daty ;
    cout <<endl;}

    void chu() {
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        cout <<"出生日期为:"<<m.year <<m.month <<m.daty <<endl;}

};
main()
{  
    int input,output;
    man k(1,'a',2);//构造函数需要传递参数
    k.jin();//void类型函数不能有返回值
    k.chu();//同上
}

                                         
===========深入<----------------->浅出============
2010-12-16 22:04
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
收藏
得分:0 
回复 3楼 laoyang103
可能是我说的太简单了,没有表达出我的意思,这个题是说,在成员函数中实现对人员的录入和显示,也就是说,是在jin这个函数中输入每个参数,并不需要实参,我最想知道的是类中结构体的使用,这个比较不懂,谢谢

2010-12-16 22:16
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:8 
你不用定义全局变量,就让那个类里有一个 day 类型的的成员就行了。

class man
{
    int number;
    char sex;
    int id;
    day d;
};

像这样。后面的代码用 d.xxx 就可以了。
2010-12-16 23:19
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:6 
  那你的构造函数就不必要有参数了   直接调用jin()
这个函数就可以了  但是这个函数返回为空

                                         
===========深入<----------------->浅出============
2010-12-17 10:47
xishui777
Rank: 2
等 级:论坛游民
帖 子:53
专家分:94
注 册:2010-8-17
收藏
得分:0 
学习下
2010-12-17 20:19
sunmingchun
Rank: 4
来 自:安徽-滁州
等 级:业余侠客
帖 子:198
专家分:277
注 册:2010-4-2
收藏
得分:6 
你看看吧!增加一个无参数的够着函数就行了。
#include<iostream>
using namespace std;
struct day
    {
    int year;
    int month;
    int daty;
    } m;
class man
{
    int number;
    char sex;
    int id;   
   
public:
   
    man(int a,char b,int c) {number=a;sex=b;id=c;}
    man()
    {
    }
    void jin() {
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>m.year>>m.month >>m.daty ;
    cout <<endl;}

    void chu() {
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        cout <<"出生日期为:"<<m.year <<m.month <<m.daty <<endl;}

};
main()
{   
    //int input,output;
    man k;
    k.jin();
    k.chu();
    return 0;
}
2010-12-18 11:47
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
收藏
得分:0 
回复 5楼 pangding
请问,能否就这个代码给我一个完整的类中使用结构体的例子,谢谢

2010-12-19 00:44
Mack2
Rank: 1
来 自:山东
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-11-26
收藏
得分:0 
#include<iostream>
using namespace std;
struct day
    {
    int year;
    int month;
    int daty;
    };
class man
{
    int number;
    char sex;
    int id;
    day m;

public:
   
    man(int a,char b,int c)
    {number=a;sex=b;id=c;}
    man(){}
    void jin();
    void chu();
};
void man::jin()
{
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>m.year>>m.month >>m.daty ;
    cout <<endl;
}
void man::chu()
{
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        cout <<"出生日期为:"<<m.year <<m.month <<m.daty <<endl;
}
main()
{
    man k;
    k.jin();
    k.chu();
}
也可以用友元类实现
#include<iostream>
using namespace std;
class day
    {
protected://保护成员
    int year;
    int month;
    int daty;
public:
    day(){};
    void Setday();
    void Show();
    };
void day::Setday()
{
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>year>>month >>daty ;

}
void day::Show()
{
cout <<"出生日期为:"<<year <<"/"<<month <<"/"<<daty <<endl;
}
class man:public day
{
    int number;
    char sex;
    int id;
    day m;

public:
   
    man(int a,char b,int c,int y,int m,int d)
    {number=a;sex=b;id=c;year=y;month=m;daty=d;}
    man(){}
    void jin();
    void chu();
};
void man::jin()
{
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    Setday();
}
void man::chu()
{
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        Show();
        
}
main()
{
    man k;
    k.jin();
    k.chu();
}
#include<iostream>
using namespace std;
class day
    {
protected:
    int year;
    int month;
    int daty;
public:
    day(){};
    void Setday();
    void Show();
    };
void day::Setday()
{
    cout <<"请输入出生日期:年,月,份"<<endl;
    cin >>year>>month >>daty ;

}
void day::Show()
{
cout <<"出生日期为:"<<year <<"/"<<month <<"/"<<daty <<endl;
}
class man:public day
{
    int number;
    char sex;
    int id;
    day m;

public:
   
    man(int a,char b,int c,int y,int m,int d)
    {number=a;sex=b;id=c;year=y;month=m;daty=d;}
    man(){}
    void jin();
    void chu();
};
void man::jin()
{
    cout <<"请输入编号:"<<endl;
    cin >>number;
    cout <<endl;
    cout <<"请输入性别:"<<endl;
    cin >>sex;
    cout <<endl;
    cout <<"请输入身份证号:"<<endl;
    cin >>id;
    cout <<endl;
    Setday();
}
void man::chu()
{
        cout <<"编号为:"<<number<<endl;
        cout <<"性别为:"<<sex<<endl;
        cout <<"身份证号为:"<<id<<endl;
        Show();
        
}
main()
{
    man k;
    k.jin();
    k.chu();
}
2010-12-19 15:27
快速回复:关于类中定义结构体的问题,不懂,望指教
数据加载中...
 
   



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

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