想 new 个对象过七夕,她却抛了异常
作者 | 轩辕之风
责编 |王晓曼
来源 | 编程技术宇宙(ID:xuanyuancoding)
七夕又到了,单身汪们太难了,每年不仅要经历双十一,要经历2.14,还要经历七夕节,真是古今中外都不肯放过我们啊!
不过对于咱们程序员来说,这都不是问题!只要你不是C语言,想要对象还不简单?new 一个不就得了!
对象的类型
首先,new之前,得先定义对象的类型,就叫 GirlFriend 吧,继承自基类Girl!
接下来要思考,这个 GirlFriend 该有哪些方法呢?
首先得要长得漂亮吧:
bool isBeatuiful();
其次,得做的一手好饭吧:
Food cook();
嗯,要温柔一点,会撒娇:
bool tender();
不过也不能太粘着我,还是要去工作才行:
void work();差点忘了,最重要的一点,要爱我,心里只能有我一个:
void loveMe();
好了,就先想到这些方法吧。
要全心全意对待女朋友,还得要允许她访问你的空间,C++程序员们记得把女朋友设置为友元:
friend class GirlFriend;
和对象通信
接下来,要怎么和女朋友通信呢?
用个消息队列?嗯,不行,处理不及时的话分分钟要出事。
算了,就一个女朋友,还考虑什么高并发啊?就用个简单的回调吧!
void onMessage(Message msg);
Message 要考虑的情况有点多:
enum Message {MSG_IMissYou, // 我想你了MSG_WhatAreYouDoing, // 你在干嘛MSG_GoShopping, // 陪我逛街MSG_IFeelUncomfortable,// 我不舒服MSG_IAmAngry, // 我生气了······
}
得要小心翼翼的处理这些消息,否则,嘿嘿,你懂得~
switch (msg) {case MSG_IMissYou:say("miss you too");break;case MSG_WhatAreYouDoing:say("I'm coding...");break;case MSG_GoShopping:takeMoney();break;case MSG_IFeelUncomfortable:say("多喝热水");break;case MSG_IAmAngry:// 这个我也不知道,自己发挥吧
}
准备工作做得差不多了,现在可以来new了!
new一个
Java同学要注意,new出来的对象引用要抓牢了,要是不小心松了手,就要被垃圾回收掉了~
// Java
GirlFriend gf = new GirlFriend();
如果是一个C++程序员,new了之后还得要delete。不过,怎么能对女朋友进行delete呢,你肯定不想发生这种事情吧?所以用智能指针shared_ptr吧!
不过要注意你们别循环引用,不然谁也走不了。就像生活中两个人吵架总得有个人先让步,不然就没完没了了~
// C++
shared_ptr<GirlFriend> gf(new GirlFriend());
为了展现你的专一性,只爱她一个,得加上 final 和 const 表示一下吧:
// Java
final GirlFriend gf = new GirlFriend();// C++
const shared_ptr<GirlFriend> gf(new GirlFriend());
运行一下
写好了,咱们来运行一下~
哦豁!GirlFriend 的构造函数抛出了异常!
别急,来看看错误提示:
error: no match GirlFriend found
原来是没有找到符合要求的女朋友!
别慌,咱们降低一点条件,把有工作这一项拿掉再试试:
error: no match GirlFriend found
额,还是不行,还得继续降低要求,再把温柔去掉吧,漂亮、会做饭、爱我难道还不够吗?
error: no match GirlFriend found
好吧,是时候做出真正的抉择了,忍痛去掉会做饭!再试一次!
error: no match GirlFriend found
怎么办?只剩下漂亮和爱我了!我还不信这个邪了,爱我就好了,漂不漂亮的不重要。再来!
error: no match GirlFriend found
此刻已经心如死灰,有个对象差不多凑活吧,管她爱不爱我,这是我最后的倔强。
error: no match GirlFriend found
欺人太甚了,我要来排查一下基类 Girl 的源码,到底出了什么问题?
突然我在Girl的构造方法里看到了一行:
assert(job != "程序员");
这可难不倒我们程序员,我决定( )
猜猜我做了啥,留言区欢迎开脑洞!
分享转发~早日脱单!
想 new 个对象过七夕,她却抛了异常相关推荐
- java创建对象过七夕,想 new 个对象过七夕,她却抛了异常
原标题:想 new 个对象过七夕,她却抛了异常 关注 "" 导读:单身之痛...... 作者 | 轩辕之风 来源 | 编程技术宇宙(ID:xuanyuancoding) 七夕又到了 ...
- 对象生死劫 - 构造函数和析构函数的异常
对象生死劫 - 构造函数和析构函数的异常 2007-09-13 09:11 2086人阅读 评论(7) 收藏 举报 构造函数和析构函数分别管理对象的建立和释放,负责对象的诞生和死亡的过程.当一个对象诞 ...
- 对象生死劫 - 构造函数和析构函数的异常(转)
构造函数和析构函数分别管理对象的建立和释放,负责对象的诞生和死亡的过程.当一个对象诞生时,构造函数负责创建并初始化对象的内部环境,包括分配内存.创建内部对象和打开相关的外部资源,等等.而当对象死亡时, ...
- 十二星座匹配对象_七夕,十二星座速配对象
原标题:七夕,十二星座速配对象 一.摩羯座 摩羯座最配星座:金牛座 巨蟹座 处女座 天蝎座 双鱼座 中等配对:双子座 摩羯座 水瓶座 和摩羯座最不配的星座:白羊座 狮子座 天秤座 射手座 推荐给摩羯座 ...
- 28岁硕士女程序员想分手!对象专科学历,北京土著,失业3个月找不到工作!遭网友群嘲!...
硕士毕业的女程序员,年薪31万,本想着找个北京户口就有房有户口了.可没想到男方专科毕业,失业3个月找不到工作.女程序员顿觉前途无亮啊-这可咋整呢? 原来男方还是拆迁户,有套三环100平米的房子,啧啧, ...
- 3、假设有一个对象数组,想根据某个对象属性对数组进行排序时
function createComparisonFunction(propertyName){ return function(object1,object2){ var value1=object ...
- 使用redis存储对象,取对象时的一些常见异常
自动装配失败报空指针异常 报错: java.lang.NullPointerExceptionat com.example.service.UserServiceImpl.sendMsg(UserSe ...
- 阿里巴巴Java开发手册-finally块必须对资源对象、流对象进行关闭操作,如果有异常也要做try-cach操作
对于JDK7及以上版本,可以使用try-with-resources方式 使用方式: /*** https://www.cnblogs.com/itZhy/p/7636615.html* 其实这种方式 ...
- 使用GDIView工具排查GDI对象泄漏导致程序UI界面绘制异常的问题
目录 1.问题说明 2.初步分析 3.查看任务管理器,并使用GDIView工具分析
最新文章
- Python夺冠,老牌编程语言该走向何方?网友:崩溃
- 动态 | DeepMind 首次披露旗下专利申请情况
- axios请求接口http_Vue使用Axios实现http请求以及解决跨域问题
- tableau必知必会之运用本福德定律(Benford‘s law)验证数据真实性
- 高性能动态编译库Natasha发布1.0版本!
- 解决Javascript疲劳的方法-以及其他所有疲劳
- 前端学习(2934):上午回顾
- Echarts 地图绘制
- Spring Boot太重,Vert.x真香!
- 在MAC OSX系统中删除、添加、恢复、管理launchpad的STEAM游戏图标
- 计算机打开资源管理器停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作怎么解决...
- 【ARM嵌入式】——多寄存器寻址
- Kafka的运维利器-AdminClient
- JavaScript 中的“黑话”,你知多少?
- 【千峰】网络安全学习笔记
- Android 暗黑模式适配
- 【Oracle之AWR报告解析】
- Revit中为房间添加填充图例和“构件快速上色”
- 应用系统中的报表开发成本知多少?
- 如果要你选择某读书APP的图标,你会选择哪一个?