为了账号安全,请及时绑定邮箱和手机立即绑定

为什么始终不能通过编译

为什么始终不能通过编译

C++
不凡的蚂蚁 2017-01-31 22:37:48
#include<iostream>using namespace std;class CStudent{ public: CStudent(char nam,int num,int gra1,int gra2,int gra3):name(nam),number(num),grade1(gra1),grade2(gra2),grade3(gra3){} void display() { cin>>name>>number>>grade1>>grade2>>grade3; int z=(grade1+grade2+grade3)%3; cout<<name<<number<<grade1<<grade2<<grade3<<z<<endl; } private: char name; int number; int grade1; int grade2; int grade3;};int main(){ CStudent stud1; stud1.display(); return 0;}
查看完整描述

1 回答

已采纳
?
眼前的黑不是黑zz

TA贡献57条经验 获得超42个赞

你好。在main函数里面,

CStudent stud1;    //你没有传入参数,当然编译不过了。
CStudent stud1('a', 123, 5, 6, 7);    //你要像这样,传入对应的参数才可以


查看完整回答
反对 回复 2017-02-01
  • 不凡的蚂蚁
    不凡的蚂蚁
    我进行了如下的改动程序可以编译但在程序运行时始终会出错,我不知道这是什么原因。 #include<iostream> using namespace std; class CStudent { public: CStudent(char* nam,int num,int gra1,int gra2,int gra3):name(nam),number(num),grade1(gra1),grade2(gra2),grade3(gra3){} void display() { cin>>name>>number>>grade1>>grade2>>grade3; int z=(grade1+grade2+grade3)/3; cout<<name<<number<<grade1<<grade2<<grade3<<z<<endl; } private: char* name; int number; int grade1; int grade2; int grade3; }; int main() { CStudent stud1("fff",001,60,90,60); stud1.display(); return 0; }
  • 眼前的黑不是黑zz
    眼前的黑不是黑zz
    第一个参数只能传一个字符啊,想'a'或者'b',你传的是字符串啊"fff",当然会错啦,你看我上面的示范,就只传了个字符'a',你要想传字符串,就把 char name 改成字符数组:char name[20] ,这样你上面那样的传参才正确
  • 1 回答
  • 0 关注
  • 1084 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信