c++怎样给字符变量初始化
定义一个表示学生信息的student类,在其中有对象成员:Birthday,姓名Name、学号StuNo、英语成绩EnglishScore、数学成绩MathScore、C...
定义一个表示学生信息的student类, 在其中有对象成员:Birthday,姓名Name、学号StuNo、英语成绩EnglishScore、数学成绩MathScore、C++成绩CPPScore、平均成绩AvgScore。在构造函数中完成初始化工作。请问构造函数中 姓名Name要怎么初始化啊?
展开
3个回答
推荐于2018-04-23
展开全部
Name是什么类型的啊?
1.string 类型的话 可以直接初始化,例如 Name = "张三";
2.char* 或者char[] 类型的话,可以用strcpy,例如 strcpy(Name,"张三");
1.string 类型的话 可以直接初始化,例如 Name = "张三";
2.char* 或者char[] 类型的话,可以用strcpy,例如 strcpy(Name,"张三");
2013-11-26
展开全部
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
class Student
{ int ID;
string name;
double score;
Date birth;
public:
void
Set(int ID1,string name1,double score1);
int
GetID()const
{ return ID;
}
string GetName()const { return name; }
double GetScore()const { return score; }
Date
GetBirth()const { return birth; }
void
SetID(int ID1)
{ ID=ID1; }
void
SetName(string name1) { name=name1; }
void
SetScore(double score1){ score=score1; }
void
SetBirth(Date birth1) { birth=birth1; }
void
Output()const;
void
Output(ofstream &fout)const;
void
Input(istream &i);
};
void Student::Set(int ID1,string name1,double score1)
{ ID=ID1; name=name1; score=score1; }
void Student::Output()const
{ cout<<ID<<" "<<name<<" "<<score<<" ";
birth.Output();
}
void Student::Output(ofstream &fout)const
{ fout<<ID<<" "<<name<<" "<<score<<" ";
birth.Output(fout);
}
void Student::Input(istream &i)
{ i>>ID>>name>>score;
birth.Input(i);
}
void main()
{ Student sts[2]; // Student *sts=new Student[2];
Date d;
ofstream fout; fout.open("1.txt");
sts[0].Set(1,"aaa",99); d.Set(2007,1,1); sts[0].SetBirth(d);
sts[0].Output(fout);
sts[1].Set(2,"BBB",89); d.Set(2007,1,3); sts[1].SetBirth(d);
sts[1].Output(fout);
fout.close();
// delete []sts;
}
#include <iostream>
#include <string>
using namespace std;
class Student
{ int ID;
string name;
double score;
Date birth;
public:
void
Set(int ID1,string name1,double score1);
int
GetID()const
{ return ID;
}
string GetName()const { return name; }
double GetScore()const { return score; }
Date
GetBirth()const { return birth; }
void
SetID(int ID1)
{ ID=ID1; }
void
SetName(string name1) { name=name1; }
void
SetScore(double score1){ score=score1; }
void
SetBirth(Date birth1) { birth=birth1; }
void
Output()const;
void
Output(ofstream &fout)const;
void
Input(istream &i);
};
void Student::Set(int ID1,string name1,double score1)
{ ID=ID1; name=name1; score=score1; }
void Student::Output()const
{ cout<<ID<<" "<<name<<" "<<score<<" ";
birth.Output();
}
void Student::Output(ofstream &fout)const
{ fout<<ID<<" "<<name<<" "<<score<<" ";
birth.Output(fout);
}
void Student::Input(istream &i)
{ i>>ID>>name>>score;
birth.Input(i);
}
void main()
{ Student sts[2]; // Student *sts=new Student[2];
Date d;
ofstream fout; fout.open("1.txt");
sts[0].Set(1,"aaa",99); d.Set(2007,1,1); sts[0].SetBirth(d);
sts[0].Output(fout);
sts[1].Set(2,"BBB",89); d.Set(2007,1,3); sts[1].SetBirth(d);
sts[1].Output(fout);
fout.close();
// delete []sts;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-26
展开全部
如果把m_Name声明为字符数组或字符指针,再这样编写构造函数头:student(...,const char *pszName),然后函数体直接用C的库函数strcpy/strncpy来,它们定义于标准头文件string.h。也可以把成员m_Name声明成一个string对象,构造函数:student(...,const string name) - 参数也是一个string对象,并可以用重载的运算符‘=’来对两个对象进行复制。:m_Name = name 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询