C++之Person类中调用Date类

ops/2024/10/18 23:22:42/

main.cpp

#include <iostream>
#include "Person.h"
using namespace std;int main()
{Person myPerson;// Person myPerson("S.M.Wang", 070145, "莲花路200号");cout << "请输入姓名:" ;string name;cin >> name;cout << "请输入ID:" ;int id;cin >> id;cout << "请输入住址:" ;string address;cin >> address;Date myDate;cout << "请输入生日年:" ;int year;cin >> year;cout << "请输入生日月:" ;int month;cin >> month;cout << "请输入生日天:" ;int day;cin >> day;myPerson.setName(name);myPerson.setID(id);myPerson.setAddress(address);myDate.setYear(year);myDate.setMonth(month);myDate.setDay(day);myPerson.setBirthday(myDate); // 调用的形参为类myPerson.print();return 0;
}

Person.h

#include <iostream>
#include "Date.h"
using namespace std;class Person
{
public:Person();Person(string name, int id, string address);~Person();void setPerson(string name, int id, string address);void setName(string name);void setID(int id);void setAddress(string address);void setBirthday(Date d);string getName();int getID();string getAddress();Date getBirthday();void print(); // outPutResult
private:string Name;int ID;string Address;Date Birthday;
};

Person.cpp

#include "Person.h"
#include <iostream>
using namespace std;Person::Person()
{Name = "S.M.Wang";ID = 070145;Address = "莲花路200号";
}Person::Person(string name, int id, string address)
{setPerson(name, id, address);
}Person::~Person()
{//cout << "object Destructor is called" << endl;
}void Person::setPerson(string name, int id, string address)
{Name = name;ID = id;Address = address;
}void Person::setName(string name)
{Name = name;
}void Person::setID(int id)
{ID = id;
}void Person::setAddress(string address)
{Address = address;
}string Person::getName()
{return Name;
}int Person::getID()
{return ID;
}string Person::getAddress()
{return Address;
}void Person::setBirthday(Date d) // 调用的形参是类
{Birthday = d;
}Date Person::getBirthday() // 返回的是类
{return Birthday;
}void Person::print()
{cout << "Name:" << getName() << endl;cout << "ID:" << getID() << endl;cout << "Address:" << getAddress() << endl;cout << "Birthday:" << getBirthday().getYear(); // getBirthday()返回的是类,再调用类中的子函数满足cout的返回值。cout << " " << getBirthday().getMonth();cout << " " << getBirthday().getDay() << endl;
}

Date.h

#include <iostream>using namespace std;class Date
{friend class Person;
public:Date();Date(int y, int m, int d);~Date();void setYear(int y);void setMonth(int m);void setDay(int d);int getYear();int getMonth();int getDay();void print();
private:int Year;int Month;int Day;};

Date.cpp

#include "Date.h"
#include <iostream>
using namespace std;Date::Date()
{Year = 0;Month = 0;Day = 0;
}Date::Date(int year, int month, int day)
{setYear(year);setMonth(month);setDay(day);
}Date::~Date()
{//cout << "object Destructor is called" << endl;
}void Date::setYear(int year)
{Year = year;
}void Date::setMonth(int month)
{Month = month;
}void Date::setDay(int day)
{Day = day;
}int Date::getYear()
{return Year;
}int Date::getMonth()
{return Month;
}int Date::getDay()
{return Day;
}void Date::print()
{cout << "Year :" << getYear() << endl;cout << "Month :" << getMonth() << endl;cout << "Day :" << getDay() << endl;
}

Result:

 

 


http://www.ppmy.cn/ops/118184.html

相关文章

nodejs 016: javascript语法——解构赋值({ a, b, c } = {})=>{console.log(“Hello“);}

在 JavaScript 中&#xff0c;函数参数 { a, b, c } {} 的含义是在函数定义时提供一个默认的对象参数。这个对象包含了三个可选的属性 a, b, 和 c。如果没有传递参数或者传递的参数是一个非对象类型的值&#xff0c;那么函数内部将使用一个空对象 {} 作为参数。 示例 const …

【react案例】实现评论列表

1. 需求 展示评论列表实现删除功能 2.1 只有自己的评论才展示删除按钮 2.2 点击删除按钮&#xff0c;删除当前评论tab切换&#xff08;点击对应tab&#xff0c;对tab文案高亮处理&#xff09;评论高亮评论排序&#xff08;最新、最热&#xff09; 2. 实现思路 useState维护评…

一、前后端分离及drf的概念

1.1什么是前后端分离 程序角度 前后端不分离&#xff1a;一个程序&#xff08;如django),接收请求处理HTML模版用户返回 前后端分离&#xff1a;两个程序 --前端&#xff1a;vue.js/react.js/angular.js --后端&#xff1a;Django drf(django rest framework) 2.专业角度 --…

C语言 编译和链接

目录 1. 翻译环境1.1 编译器1.1.1 预处理1.1.2 编译1.1.2.1 词法分析1.1.2.2 语法分析1.1.2.3 语义分析 1.1.3 汇编 1.2 链接 2. 运行环境 正文开始 当我们运行一段代码的时候&#xff0c;你是否好奇过&#xff1a;为什么这些文字就能够实现对应的逻辑功能呢&#xff1f;计算机…

基于大数据的亚健康人群数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

谷歌网站收录查询,怎么查看网站在谷歌的收录情况

在进行谷歌网站收录查询时&#xff0c;我们需采取一种既专业又系统的方法&#xff0c;以确保能够准确评估网站在谷歌搜索引擎中的可见性和收录状态。这一过程不仅关乎技术细节&#xff0c;还涉及到对搜索引擎优化&#xff08;SEO&#xff09;策略的理解与应用。以下是一个基于专…

NLP基础

一、基本概念 自然语言处理&#xff08;NLP&#xff09;是计算机科学、人工智能和语言学的交叉领域&#xff0c;旨在使计算机能够理解、解释和生成自然语言。以下是一些NLP的基础概念&#xff1a; 文本预处理 分词&#xff1a;将文本分解为单词或短语。 去除停用词&#xff1…

无人机之模拟图传篇

无人机的模拟图传技术是一种通过模拟信号传输图像数据的方式&#xff0c;它通常使用无线电模块或专用通信协议进行数据传输。 一、基本原理 模拟图传技术的工作原理是将摄像头或相机设备采集到的图像数据&#xff0c;通过模拟信号的形式进行传输。这些模拟信号在传输过程中可能…