找回密码
 FreeOZ用户注册
查看: 5220|回复: 67
打印 上一主题 下一主题

[论坛技术] 我的第一个c++程序

[复制链接]
1#
发表于 8-2-2010 23:44:07 | 显示全部楼层
原帖由 coolmate 于 8-2-2010 14:35 发表
这是我的一个小文件的定义文件,你可以看一下。#ifndef NICTA_SISM_HELP_H
#define NICTA_SISM_HELP_H

#include

namespace nicta {
namespace sism {

    class help
    {

    public:

        ...

这段代码挺干净的,就是这点比较奇怪:

  1. const void set_classrange(const std::string range);            //  Set the class to be searched
  2.         const void set_searchitem(const std::string item);             //  Set the item name to be searched
复制代码




前面的const void干嘛的? 一般如果method不修改class成员,应该用const做后缀说明,如果返回的是引用,但是又不想被修改,用const T&, 如果是RBV (return by value),就啥都不用修饰。可是你这里,返回是void,我第一次看到特意弄个const void的,能不能说明下用意?
回复  

使用道具 举报

2#
发表于 9-2-2010 21:48:49 | 显示全部楼层
原帖由 coolmate 于 9-2-2010 10:03 发表

说实话,我不是太明白这里,这是某一次此大牛在他的code里面写过,但是我自己也想不清楚。丫神出鬼没的。

你是不是看花眼了,如果大牛写的是const void*就好理解了
回复  

使用道具 举报

3#
发表于 16-2-2010 15:16:26 | 显示全部楼层
原帖由 四香油饼 于 16-2-2010 15:58 发表




这个是为什么呢?如果是类的内部函数,为什么一定要写this呢?不写会引起什么问题吗?


防止名字冲突,比如:
class X
{
  int value;
  void setValue( int value )
  {
    this->value = value;
  }
}


其实这只是个code style, 不是一个must have的要求,比如Java中强制要求的getter/setter, 用是有理由的,但是如果真的不需要,非要用就是迂腐的。这点C++社区从来都是反对的。
回复  

使用道具 举报

4#
发表于 16-2-2010 17:07:55 | 显示全部楼层
原帖由 大杨树 于 16-2-2010 16:49 发表

记忆中好像gcc 4.2x 以后是must have.请高手确认一下.

never
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 3-6-2024 19:31 , Processed in 0.017553 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表