标题:1) 在实验五的student类基础上实现二个构造函数,一个可根据姓名、学号、语 ...
只看楼主
刘洋
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-4-6
结帖率:100%
已结贴  问题点数:6 回复次数:6 
1) 在实验五的student类基础上实现二个构造函数,一个可根据姓名、学号、语、数、英成绩来构造一个学生对象,另一个则可根据姓名、学号来构造一个学生对象,并同
#include<iostream.h>
#include<string>
class Student{
private:
    string name, num;
    float c,m,e;
public:
    Student();//定义无参版本的构造函数
    Student(string na,string nu,float m1,float c1,float e1);//定义有参版本的构造函数
    ~Student()//定义析构函数
    void showStudent();
};
    Student::Student()
    {name="刘洋";
    num=12;
    m=0;
    c=0;
    e=0;
    }//在构造函数中对私有成员赋值
    Student::~Student()
    {cout<<"析构"<<num<<endl;
    }

    Student::Student(string na,string nu,float m1,float c1,float e1);//定义有参版本的构造函
    {name=na;
    num=nu;
    m=m1;
    c=c1;
    e=e1;
    }//在构造函数中对私有成员赋值
    Student::~student()
    {cout<<"析构"<<num<<endl;
    }
    inline void Student::showStudent()
    {cout<<name<<num<<m<<c<<e<<endl;
    }
};
int main()
{
   
    Student A,B;
    A.showStudent();
    B.showStudent("刘洋","12",95,100,78);
    return 0;
搜索更多相关主题的帖子: 实验 姓名 函数 student 学号 
2010-04-13 14:41
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
得分:1 
帖名也太长了,而且不知道楼主想要做什么。
2010-04-13 15:17
yyblackyy
Rank: 6Rank: 6
等 级:侠之大者
帖 子:98
专家分:457
注 册:2010-3-31
得分:1 
以下是引用秀痘魔导士在2010-4-13 15:17:35的发言:

帖名也太长了,而且不知道楼主想要做什么。
2010-04-13 15:33
阿标兄
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2010-4-11
得分:1 
我也看不明白!
2010-04-14 20:20
刘洋
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-4-6
得分:0 
#include<iostream>
#include<string>
using namespace std;
class Student{
private:
    string name;int num;
    float c,n,e;
public:
    Student();//声明无参版本的构造函数
    Student(string na,int nu,float n1,float c1,float e1);//声明有参版本的构造函数
    ~Student();
    void showStudent();
    float avar();
};
Student::Student()
{name="刘奎";
num=90;
n=0;
c=0;
e=0;
cout<<"构造"<<name<<endl;
}


Student::Student(string na,int nu,float n1,float c1,float e1)//定义有参版本的构造函
{name=na;
num=nu;
n=n1;
c=c1;
e=e1;
cout<<"构造"<<name<<endl;
}
Student::~Student()
{cout<<"析构:"<<name<<endl;
}
float Student::avar()
{return (n+c+e)/3;}
void Student::showStudent()
{cout<<"name"<<" "<<"num"<<" "<<"n"<<" "<<"c"<<" "<<"e"<<endl;
cout<<name<<" "<<num<<" "<<n<<" "<<c<<" "<<e<<endl;
}

int main()
{
    Student stu1;   
    stu1.showStudent();
    Student stu2("刘洋",12,95,100,78);
    stu2.showStudent();
    cout<<"stu1的信息:"<<stu1.avar()<<endl;
    cout<<"stu2的信息:"<<stu2.avar()<<endl;
    return 0;
}
2010-04-15 08:56
缝小肛
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2010-4-15
得分:0 
#include<iostream>
#include<string>
using namespace std;

class Student
{
private:

    string m_name;
    string m_num;
    float m_c;
    float m_m;
    float m_e;

public:

    Student();      //定义无参数的构造函数
    Student(string na,string nu,float m1,float c1,float e1);//定义有参数的构造函数
    ~Student();     //定义析构函数
    void show();
};

Student::Student()  //在构造函数中对私有成员赋值
{
    m_name = "刘阳";
    m_num = 12;
    m_m = 0;
    m_c = 0;
    m_e = 0;
    cout<<"无参的构造函数被调用"<<endl;
}

Student::~Student()
{
    cout<<"析构函数被调用"<<endl;
}

Student::Student(string na,string nu,float m1,float c1,float e1)                                  //在构造函数中对私有成员赋值
{
    m_name = na;
    m_num = nu;
    m_m = m1;
    m_c = c1;
    m_e = e1;
    cout<<"带有参数的构造函数被调用"<<endl;
}

void Student::show()
{
    cout<<m_name<<"  "<<m_num<<"  "<<m_m<<"  "<<m_c<<"  "<<m_e<<endl;
}

int main()
{

    Student A;
    Student B("刘洋","12",95,100,78);
    A.show();
    B.show();
    return 0;
}

我不知道你的目的是什么 ,但你的程序不能运行,有点小小的错误,改正了,特别提一下 注意程序的风格。
我也增加了一些东西,方便观察 构造函数什么时候被调用,什么时候被析构。
2010-04-15 18:16
刘洋
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-4-6
得分:0 
楼上的谢谢你,你的楼上是我自己写的程序!和你的应该差不多!
2010-04-16 20:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302803-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017381 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved