C++面向对象作业1

 1 #include <iostream>
 2 #include <stdlib.h>
 3 using namespace std;
 4 class Tdate
 5 {
 6 public:
 7     Tdate(int mm=0,int dd=0,int yy=0);
 8     ~Tdate()
 9     {
10         cout<<"Call Destructor.\n";
11     }
12     void Tdate::SetDate(int m,int d,int y);//构造函数参数设置了缺省值
13     void print()
14     {
15         cout<<"month="<<month<<",day="<<day<<",year="<<year<<"\n";
16     }
17 protected:
18     int month,day,year;
19 };
20 Tdate::Tdate(int mm,int dd,int yy)
21 {
22     month=mm;
23     day=dd;
24     year=yy;
25     cout<<"Call Constructor.\n";
26 }
27 void Tdate::SetDate(int m,int d,int y)
28 {
29     if(m>0&&m<13)
30         month=m;
31     if(d>0&&d<32)
32         day=d;
33     if(y>0&&y<3000)
34         year=y;
35 }
36 int main()
37 {
38     Tdate *pd1,*pd2;
39     pd1=new Tdate(1,1,2000);//创建动态对象,会调用构造函数
40     pd1->print();//只能用指针去访问该对象的成员
41     pd2=new Tdate(12,31,2007);//创建动态对象,会调用构造函数
42     if(!pd2)//如果分配堆内存不成功
43     {
44         cout<<"Heap error!\n";//输出错误信息
45         exit(1);//终止程序运行
46     }
47     else//如果分配堆内存成功
48         pd2->SetDate(8,8,2008);//调用函数重设日期
49     pd2->print();
50     delete pd1;//删除动态对象,会调用析构函数
51     delete pd2;//删除动态对象,会调用析构函数
52 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏九彩拼盘的叨叨叨

JavaScript 数组常用方法介绍

当要使用迭代方法时,forEach 应该是最后被考虑的。主要原因是:forEach 与其他迭代方法比,语义性是最差的。更详细的说明见 avoid forEach...

15120
来自专栏全沾开发(huā)

搞懂JavaScript中的连续赋值

搞懂JavaScript中的连续赋值 前段时间老是被一道题刷屏,一个关于连续赋值的坑。 遂留下一个笔记,以后再碰到有人问这个题,直接...

41360
来自专栏程序员互动联盟

【编程基础】C语言复合赋值运算符

在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符。复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常看到这样的语句: n ...

45960
来自专栏小二的折腾日记

day5(面向对象2)

1.指定类型的数组到底要定义多长呢? 当指定类型的数组长度小于集合的size,那么该方法会创建一个新的数组,长度为集合的size。当指定类型的数组长度小于了集合...

9230
来自专栏梧雨北辰的开发录

Swift学习:构造器(下)

本篇主要介绍Swift中构造器的一些特殊用法 一、可失败的构造器 顾名思义,这是用于我们构造过程可能失败情况的构造器。失败的原因可能是给构造器传入无效的参数值,...

28170
来自专栏JavaEdge

青铜到王者 ,快速提升你 Go语言的段位! "狗"语言实战(二)- 基础语法1 变量定义

14840
来自专栏专注 Java 基础分享

基本数据类型及其包装类(二)

上篇文章我们简单介绍了包装的相关基本概念,并简单分析了 Integer 类中的几个核心的方法源码,但是有关自动拆装箱的概念限于篇幅并没能完成介绍,本篇还将分析几...

33460
来自专栏极客慕白的成长之路

Python字符串格式化

格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个...

15420
来自专栏AzMark

Python 学习之正则表达式「上 」

相信你此刻已经感受到了它的强大之处,接下来就让我们开始正则表达式的学习。先来介绍一下 re 模块。

7810
来自专栏Micro_awake web

javascript(三):对象

 对象(object)是javascript中很重要的数据类型。对象是“键值对”的集合,同时也是无序的。(注意:对象结尾处有分号) 1 var ob1={ ...

207100

扫码关注云+社区

领取腾讯云代金券