m0_55760111 2021-03-20 13:45 采纳率: 100%
浏览 274
已采纳

(Dev-c++)为什么会报错[Error] ld returned 1 exit status?

#include<iostream>
#include<cstring>
using namespace std;
class Date{
    private:
        int year; int month; int day;
    public:
        bool set(int y,int m,int d);
        void show();
        int y1();
        Date(int y,int m,int d){year=y; month=m; day=d;};
        Date(){};
};

class student{
    private:
        int id;
        char name[20];
        Date roll;
        static int number;
    public:
        void show1();
        static void geNum(int N);
        void getname(char *p);
        student(Date &j){
            strcpy(name,"ssdut");
            j.set(2019,8,28);
            id=j.y1()*1000+number;
            number+=1;
            roll.set(2019,8,28);
        };
}; 

bool Date:: set(int y,int m,int d){
    year=(y>=0)?y:0;
    month=(m>=0&&m<=12)?m:0;
    if((year%4==0&&year%100!=0)||year%400==0){
        if(month==2){
            day=(d>=0&&d<=29)?d:0;
        }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
            day=(d>=0&&d<=31)?d:0;
        }else if(month!=0){
            day=(d>=0&&d<=30)?d:0;
        }
    }else if(year!=0){
        if(month==2){
            day=(d>=0&&d<=28)?d:0;
        }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
            day=(d>=0&&d<=31)?d:0;
        }else if(month!=0){
            day=(d>=0&&d<=30)?d:0;
        }
    }
}

void Date:: show(){
    cout<<month<<"/"<<day<<"/"<<year<<endl;
}

int Date::y1(){
    int y0=year;
    return y0;
}

void student::show1(){
    cout<<"学号:"<<id<<endl;
    cout<<"姓名:"<<name<<endl;
    cout<<"学号:"<<number<<endl;
    cout<<"入学时间:";
    roll.show();
}

void student::geNum(int N){
    number=N;
}

void student::getname(char *q){
    strcpy(name,q);
}
 
int main(){
    int n=1;
    student::geNum(n);
    Date k(1,1,1);
    student k1(k);
    k1.show1();
    return 0;
}

  • 写回答

1条回答 默认 最新

  • cpp_learners 2021-03-20 13:59
    关注

    类有静态成员变量,需要在类外面对其进行初始化,否则会报错!

    int student::number = 0;

     

    还有bool Date::set(int y, int m, int d)函数少了一个返回值。

     

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败