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

(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 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形