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>>吗?

c++中的#include<iostream>是什么意思??~
包含iostream文件。iostream实际上是一个头文件(iostream.h),你安装C++环境时就已经存在你的机子里面了 然后使用#include把这个文件包含进来,就可以使用这个文件里面的代码了。你也可以自己写一个文件,然后使用#include包含进来,需要注意的是自己写的#include的时候必须要写文件全名,并且<>要写成双引号。

include< iostream>是什么用法啊?
include<iostream>意思是引入iostream库,即输入输出流库。iostream库的基础是两种命名为istream和ostream的类型,分别表示输入流和输出流。#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。在旧的标准C++中,使用#include<iostream.h>,但在新标准中,用#include<iostream>。

#include<iostream>是什么意思啊?
包含c++的标准输入输出头文件iostream,也就是编译袭器先把百头文件iostream中的所有内容COPY到#include<iostream>的位置,再进行编译。注意c++的这个标准输入输出头文件的名称就是iostream,没有.h的后问缀跟c的标准输入输出头文件stdio.h不一样。

# include< iostream> using namespace std;
出错原因:函数调用头文件中的库函数时,查不到所需函数出错,即头文件的错,C语言的头文件与C++的头文件混淆导致错误。解决方案两种方法:1、#include <iostream> include <cmath> using namespace std;2、#include <iostream> include <math.h> using namespace std ...

在C++编程开头中,#include<iostream>这样的格式是通用的吗?_百度知 ...
#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等。非常明显,所有预处理命令均以符号“#”开头。include<iostream>就是预处理命令。可以简单地理解为“调用iostream函数库”。include<XXXXX>这样的格式不一定是通用的,有时会有#define XXX等等这样的预处理命令出现。求采纳,谢谢!

C++问题#include <iostream>
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=...

C++中的#include<iostream>是什么意思啊 希望可以给详细解释下_百度知 ...
就是包含头文件,比如你include<stdio.h>,就可以直接调用在stdio.h这个库文件里定义的scanf,printf等函数。

输入#include<iostream>后cout依然无法识别?
include <iostream>后面没有分号。预处理命令后面都没有分号。语句(非声明语句)必须写在函数体里,不能写在全局范围。语句后面必须有分号。endl被打成了end。一般预处理命令都在前面,变量声明在预处理之后。C++标准库中已有time这个标识符,最好不要自己再定义一个以time为名字的标识符,有可能出错。

在C++中#include <iostream> 如果和#include <iostream.h> 这两...
要说明白<iostream>和<iostream.h>的区别,就要先说下它们的背景历史。C++标准化过程中主要解决了以下几个问题:(1)C++增加了名称空间概念,借以将原来声明在全局空间下的标识符声明在了namespace std下。(2)统一C++各种后缀名,如.h .hpp .hxx等。标准化之前的头文件就是带后缀名的文件,标准...

c++中#include <iostream>什么作用
include包含的意思,后面的iostream是头文件,用来告诉编译器你使用的一些方法,类在什么地方,如果你没有写上这个会报错xx找不到

相似回答
大家正在搜