1)定义一个名为CPerson的类,该类有以下属性:name、sex和age,请用C++语言定义这个类,并为上述属性定义相应的成员函数(如:setName(const char *)和getName()),要求能够通过相应的成员函数设置和获取姓名、性别和年龄;
(2)定义类CPerson的对象测试调用成员函数;
(3)合理设置所有的属性和成员函数的访问控制类型(private或public);
有人教教我要怎么做吗😭还有做这个的时候需要做包含多个文件的项目吗
c++ 类与对象的定义和类成员的访问控制
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 技术专家团-小桥流水 2022-03-07 11:13关注
用多个文件或者当文件都是可以的。
如果用多个文件,就新建类的.h文件和cpp文件,分别存放类的声明和实现即可。然后单独写一个测试程序(如main.cpp)。
如果只用1个文件,把.h文件和.cpp文件的内容放在一个文件中就可以了(注意类的声明部分需要放main函数前面)
(1)多文件写法
CPerson.h文件:#ifndef _CPERSON_H #define _CPERSON_H #include <string> using namespace std; class CPerson { private: string mName; string mSex; int mAge; public: CPerson(); CPerson(string name,string sex,int age); //获取和设置属性 string getName(); void setName(string name); string getSex(); void setSex(string sex); int getAge(); void setAge(int age); //显示 void show(); }; #endif
CPerson.cpp文件:
#include "Cperson.h" CPerson::CPerson() { mName = ""; mSex=""; mAge = 0; } CPerson::CPerson( string name,string sex,int age ) { mName = name; mSex=sex; mAge = age; } std::string CPerson::getName() { return mName; } void CPerson::setName( string name ) { mName = name; } std::string CPerson::getSex() { return mSex; } void CPerson::setSex( string sex ) { mSex = sex; } int CPerson::getAge() { return mAge; } void CPerson::setAge(int age) { mAge = age; } //显示信息 void CPerson::show() { cout << "姓名:"<<mName <<" 性别:"<<mSex <<" 年龄:"<<mAge<<endl; }
测试程序(main.cpp):
#include "Cperson.h" #include <iostream> using namespace std; int main() { CPerson ps1; ps1.setName("张三"); ps1.setSex("男"); ps1.setAge(22); ps1.show(); CPerson ps2("李四","男",33); ps2.show(); return 0; }
(2)单个文件,写法如下:
#include <string> #include <iostream> using namespace std; class CPerson { private: string mName; string mSex; int mAge; public: CPerson(); CPerson(string name,string sex,int age); //获取和设置属性 string getName(); void setName(string name); string getSex(); void setSex(string sex); int getAge(); void setAge(int age); //显示 void show(); }; CPerson::CPerson() { mName = ""; mSex=""; mAge = 0; } CPerson::CPerson( string name,string sex,int age ) { mName = name; mSex=sex; mAge = age; } std::string CPerson::getName() { return mName; } void CPerson::setName( string name ) { mName = name; } std::string CPerson::getSex() { return mSex; } void CPerson::setSex( string sex ) { mSex = sex; } int CPerson::getAge() { return mAge; } void CPerson::setAge(int age) { mAge = age; } // void CPerson::show() { cout << "姓名:"<<mName <<" 性别:"<<mSex <<" 年龄:"<<mAge<<endl; } int main() { CPerson ps1; ps1.setName("张三"); ps1.setSex("男"); ps1.setAge(22); ps1.show(); CPerson ps2("李四","男",33); ps2.show(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等
- ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
- ¥15 qt6.6.3 基于百度云的语音识别 不会改
- ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?
- ¥15 lingo18勾选global solver求解使用的算法
- ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行