免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: asuka2001
打印 上一主题 下一主题

命名难,难于上青天 [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
21 [报告]
发表于 2012-02-10 16:52 |只看该作者
回复 7# asuka2001

面向对象编程总会让人将精力耗散在莫名其妙的事上……

论坛徽章:
0
22 [报告]
发表于 2012-02-10 17:01 |只看该作者
本帖最后由 三月廿七 于 2012-02-10 17:16 编辑
asuka2001 发表于 2012-02-10 14:00
setAddress(this, int address)
{
        this->address= address;
}


c 语言就不存在这个问题,足见c++之垃圾

论坛徽章:
0
23 [报告]
发表于 2012-02-10 17:04 |只看该作者
看你们命个名都这么受罪,可怜的人啊

论坛徽章:
0
24 [报告]
发表于 2012-02-10 17:07 |只看该作者
本帖最后由 三月廿七 于 2012-02-10 17:19 编辑

没想到你还带了 this 了

通常的命名方式是这样子的

setAddress(address)
{
     m_address = address;  
}

你的函数名和变量名不一致...

函数名和变量名 名称要一致,顺序也要一致
一量变量名定了,函数名就定了...

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
25 [报告]
发表于 2012-02-10 17:26 |只看该作者
三月廿七 发表于 2012-02-10 17:01
c 语言就不存在这个问题,足见c++之垃圾


又打自己脸了?

  1. // gclosure.c/gobject
  2. void
  3. g_closure_set_marshal (GClosure       *closure,
  4.                        GClosureMarshal marshal)
  5. {
  6.   g_return_if_fail (closure != NULL);
  7.   g_return_if_fail (marshal != NULL);

  8.   if (closure->marshal && closure->marshal != marshal)
  9.     g_warning ("attempt to override closure->marshal (%p) with new marshal (%p)",
  10.                closure->marshal, marshal);
  11.   else
  12.     closure->marshal = marshal;
  13. }
复制代码
你还没分清楚编程语言与编程方法之间的区别呐……

论坛徽章:
0
26 [报告]
发表于 2012-02-10 17:28 |只看该作者
本帖最后由 三月廿七 于 2012-02-10 17:29 编辑
OwnWaterloo 发表于 2012-02-10 17:26
又打自己脸了?你还没分清楚编程语言与编程方法之间的区别呐……


你知道我的意思吗?
我是说c++ 不允许 参数 和 类成员 同名
无端的前变量名前添加 m_ , 不伦不类的

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
27 [报告]
发表于 2012-02-10 17:29 |只看该作者
三月廿七 发表于 2012-02-10 17:07
你的函数名和变量名不一致...

函数名和变量名 名称要一致,顺序也要一致
一量变量名定了,函数名就定了...


不对。

等你能认识到问题的关键是函数名与使用这个函数名的其他代码,而不是什么函数名与成员名……
你才算不是依葫芦画瓢地模仿,而是理解了什么叫封装。

论坛徽章:
0
28 [报告]
发表于 2012-02-10 17:31 |只看该作者
本帖最后由 三月廿七 于 2012-02-10 17:32 编辑
OwnWaterloo 发表于 2012-02-10 17:29
不对。

等你能认识到问题的关键是函数名与使用这个函数名的其他代码,而不是什么函数名与成员名…… ...


我说的 命名规范,怎么使代码看起来更紧凑

这和封装有什么关系?求解答

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
29 [报告]
发表于 2012-02-10 17:33 |只看该作者
OwnWaterloo 发表于 2012-02-10 17:29
不对。

等你能认识到问题的关键是函数名与使用这个函数名的其他代码,而不是什么函数名与成员名…… ...


哥哥,你这是合法歪楼么=

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
30 [报告]
发表于 2012-02-10 17:34 |只看该作者
三月廿七 发表于 2012-02-10 17:28
你知道我的意思吗?
我是说c++ 不允许 参数 和 类成员 同名


你知道lz的意思吗?他是在纠结什么?

谁说不允许了? this->x = x 不就可以了?
gobject是通过总是使用且不能省略self->x来实现参数与成员同名。
C++一样可以这么做。

1. 当参数与成员名重复时
C++可以 this。
就类似上面我引用的gobject的代码一样。

2. 当参数与成员名不重复时
C++可以 this 也可以不 this。
gobject没得选
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP