①含类定义的引入iostream库student.h
//student.h (这是引入iostream库,在此文件中进行类的声明)
class Student //类声明
{public:
void display(); //公用成员函数原型声明
private:
int num,
char name[20]:
char sex;
};
②包含成员函数定义的引入iostream库student.cpp。
//student.cpp 在此文件中进行函数的定义
#include<iostream>
#include "student.h" //不要漏写此行,否则编译无法通过
void Student::display() //在类外定义display类函数
{cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
③包含主函数的引入iostream库main.cpp。
为了组成一个完整的源程序,应当有包括主函数的引入iostream库:
//main.cpp 主函数模块
#include<iostream>
#include "student.h" //将类声明引入iostream库包含进来
int main()
{student stud; //定义对象
stud.display(); //执行stud对象的display函数
return 0;
}
在类中增加一个对数据成员赋初值的成员函数set_value。上机调试并运行,这怎么弄啊
面向对象程序设计C++
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
要在类
Student
中添加一个用于给数据成员赋初值的成员函数set_value()
,你需要按照以下步骤操作:- 在
student.h
文件中的Student
类声明部分,添加一个新的公共成员函数void set_value(int n, const char* nm, const char* sx)
,这个函数接收三个参数:整数n(学号),字符串nm(姓名)和字符串sx(性别)。这个函数的作用是为类的私有数据成员num
,name
, 和sex
赋值。
// student.h #ifndef STUDENT_H #define STUDENT_H #include <iostream> class Student { public: void display(); void set_value(int n, const char* nm, const char* sx); private: int num; char name[20]; char sex; }; #endif // STUDENT_H
- 在
student.cpp
文件中,实现新添加的成员函数set_value()
。在这个函数内部,将传入的参数分别赋值给相应的私有数据成员。
// student.cpp #include <iostream> #include "student.h" void Student::display() { std::cout << "num: " << num << std::endl; std::cout << "name: " << name << std::endl; std::cout << "sex: " << sex << std::endl; } void Student::set_value(int n, const char* nm, const char* sx) { num = n; strcpy(name, nm); sex = sx[0]; // 注意这里只取第一个字符作为性别 }
- 在
main.cpp
中,创建一个Student
对象,并调用set_value()
方法为其赋值,然后调用display()
方法显示学生信息。
// main.cpp #include <iostream> #include "student.h" int main() { Student stud; // 使用set_value方法为对象赋值 stud.set_value(12345, "John Doe", "M"); // 显示学生信息 stud.display(); return 0; }
现在,当运行
main.cpp
时,会首先创建一个Student
对象,然后使用set_value()
方法为其设置初始值,最后调用display()
方法打印出学生的学号、姓名和性别。确保所有三个文件都在同一个目录下,然后编译并运行整个程序。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- 在
悬赏问题
- ¥15 如何改进这个简易的模数转换程序
- ¥30 模拟电路 logisim
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法