C++问题#include <iostream>

#include <string>
using namespace std;
class date
{
private:
int year ;
int month;
int day;
public :
date()
{
cout<<"构造函数";
};
void setDate(int y ,int m ,int d )
{
year=y;
month=m;
day=d;
};
date (date&bir)
{
year =bir.year ;
month=bir.month;
day=bir.day;
};
int getYear()
{
return year;
};
int getMonth()
{
return month;
};
int getDay()
{
return day;
};

};
class people
{
private:
date birthday;
int num;
char name[20];
char sex[4];
char id[20];

public :
people()
{
};
void input()
{
int y,m,d;
cout<<"录入数据";
cout<<"编号"<<endl;
cin>>num;
cout<<"姓名"<<endl;
cin>>name;
cout<<"性别"<<endl;
cin>>sex; //40
cout<<"身份证编号"<<endl;
cin>>id;
cout<<"出生日期(年月日)"<<endl;
cin>>y>>m>>d;
birthday.setDate(y,m,d);

};
void output()
{
cout<<"编号"<<num<<endl;
cout<<"姓名"<<name<<endl;
cout<<"性别"<<sex<<endl ;
cout<<"身份证编号"<<id<<endl;
cout<<"生日"<<birthday;

};
};

int main()
{
people p1;
p1.input();
p1.output();
return 0;
}
最后在output()方法里面输出birthday报错,该怎样修改?
本人C++小白,问下复制函数到底有什么用?以上面为例,把那个的复制函数去掉可否?

#include <iostream>//要加上这个头文件
#include <string> 
using namespace std; 
class date
{
private:
    int year ;
    int month;
    int day;   
public :
    date()
    {
        cout<<"构造函数";
    };
 void  setDate(int y ,int m ,int d )
    {
    year=y;
    month=m;
    day=d;
    };    
 date (date&bir)
 {
     year =bir.year ;
     month=bir.month;
     day=bir.day;
 };
 int getYear()
 {
 return year;
 };
 int getMonth()
 {
 return month;
};
 int getDay()
 {
 return day;
 };
  void out()
  {
     cout<<"年:"<<getYear()<<" 月"<<getMonth()<<"  日"<<getDay()<<endl;
  }//加个输出函数
};
class people
{
private:
    date birthday;
    int  num;
    char name[20];
    char sex[4];
    char id[20];
    
 public :
    people()
    {
    };
    void input()
    {
        int y,m,d;
        cout<<"录入数据";
        cout<<"编号"<<endl;
        cin>>num;
        cout<<"姓名"<<endl;
        cin>>name;
        cout<<"性别"<<endl;
        cin>>sex;    
        cout<<"身份证编号"<<endl;
        cin>>id;
        cout<<"出生日期(年月日)"<<endl;
        cin>>y>>m>>d;
        birthday.setDate(y,m,d);

    };
    void output()
    {
        cout<<"编号"<<num<<endl;
        cout<<"姓名"<<name<<endl;
        cout<<"性别"<<sex<<endl  ; 
        cout<<"身份证编号"<<id<<endl;
        //cout<<"生日"<<birthday;
birthday.out();//调用输出函数
}; 
};

int main()  
{
    people p1;
    p1.input();
    p1.output();
    return 0;
}//楼下的已经说了为什么错了,如果真要输出cout<<birthday就要用重载输入输出流

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-16

1给cout输出流添加类。2.《深度探索C++对象模型》《C++沉思录》两本书精解。

3,函数体后可不加分号,但类体大括号外必须加分号。

#include <string> 
#include<iostream>
using namespace std;
class date {
private:
    int year;
    int month;
    int day;
public:
    date() {
        cout << "构造函数";
    }
    void setDate(int y, int m, int d) {
        year = y;
        month = m;
        day = d;
    }
        date(date&bir) {
        year = bir.year;
        month = bir.month;
        day = bir.day;
    }    
    int getYear() {
        return year;
    }
    int getMonth() {
        return month;
    }
    int getDay() {
        return day;
    }
friend ostream& operator<<(ostream&,date& d);
};
ostream& operator<<(ostream& os,date& d){
    return os<<d.year<<'/'<<d.month<<'/'<<d.day<<endl;
    
}
class people {
private:
    date birthday;
    int num;
    char name[20];
    char sex[4];
    char id[20];

public:
    people() {
    }
    void input() {
        int y, m, d;
        cout << "录入数据";
        cout << "编号" << endl;
        cin >> num;
        cout << "姓名" << endl;
        cin >> name;
        cout << "性别" << endl;
        cin >> sex;    //40
        cout << "身份证编号" << endl;
        cin >> id;
        cout << "出生日期(年月日)" << endl;
        cin >> y >> m >> d;
        birthday.setDate(y, m, d);

    }
    void output() {
        cout << "编号" << num << endl;
        cout << "姓名" << name << endl;
        cout << "性别" << sex << endl;
        cout << "身份证编号" << id << endl;
        cout << "生日" <<birthday <<endl;//;

    }
};

int main() {
    people p1;
    p1.input();
    p1.output();
    return 0;
}

第2个回答  2013-10-16
birthday 是个类 需要调用类方法输出内容追问

能具体点嘛?

追答

在 date()类中加入

void shuchu(){
cout<<year<<" "<<month<<" "<<day;
};

void output() 中修改为
void output()
{
cout<<"编号"<<num<<endl;
cout<<"姓名"<<name<<endl;
cout<<"性别"<<sex<<endl ;
cout<<"身份证编号"<<id<<endl;
birthday.shuchu();

};
};

你试一下吧 我这没有编译器,不保证对啊~

第3个回答  2013-10-16
类里面还可以cin>>吗?
相似回答
大家正在搜