注册 登录
编程论坛 C++教室

c++小程序,有一个错误。求高人指点

杨龙龙 发布于 2012-03-28 23:27, 444 次点击
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    Student(int ,string,float);
    void display();
private:
    int num;
    string name;
    float score;
};
Student::Student(int n,string nam,float s)
{
    num=n;
    name=nam;
    score=s;
}
void Student::display()
{
    cout<<num<<name<<score<<endl;
}
class Graduate:public Student
{
    Graduate (int ,string ,float ,float);
    void display();
private:
    float pay;
};
Graduate::Graduate(int n,string nam,float s,float p):Student(n,nam,s),pay(p){}
void Graduate::display()
{Student::display();
cout<<pay<<endl;
}
int main()
{
    Student stud1(1001,"liuanglong",3.3);
    Graduate grad1(2001,"dsddfkjjdfhgkjdf",33.3,33.333);
    Student *p=&stud1;
    p->display();
    p=&grad1;
    p->display();
}


3 回复
#2
yubiaohyb2012-03-28 23:51
Student(int ,string,float);
 这是一个明显的错误吧  大哥
Student::Student(int n,string nam,float s)
 {
     num=n;
     name=nam;
     score=s;
 }
 字符串的处理应该调用字符串函数吧:strcpy(name, nam);其他的  不多说 你再自己试试吧
#3
hellovfp2012-03-29 10:49
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    Student(int ,string,float);
    void display();
private:
    int num;
    string name;
    float score;
};

Student::Student(int n,string nam,float s)
{
    num=n;
    name=nam;
    score=s;
}

void Student::display()
{
    cout<<num<<name<<score<<endl;
}

class Graduate:public Student
{
public:
    Graduate (int ,string ,float ,float);
    void display();
private:
    float pay;
};

Graduate::Graduate(int n,string nam,float s,float p)
    :Student(n,nam,s),pay(p){}

void Graduate::display()
{
    Student::display();
    cout<<pay<<endl;
}

int main()
{
    Student stud1(1001,"liuanglong",3.3f);
    Graduate grad1(2001,"dsddfkjjdfhgkjdf",33.3f,33.333f);

    Student *p=&stud1;
    p->display();
    p=&grad1;
    p->display();

    return 0;
}
1