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无用
悬赏问题
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用