加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 构造函数的参数命名

发布时间:2020-12-16 10:26:52 所属栏目:百科 来源:网络整理
导读:在 Java中,通常,我可以将构造函数的参数与成员变量同名. public A(int x){ this.x = x;}private int x; 在C中,我不能.通常,我必须这样做. public: A(int x_) : x(x_) { }private: int x; 有没有更好的方法?由于构造函数参数名称看起来很难看,当IDE IntelliS
在 Java中,通常,我可以将构造函数的参数与成员变量同名.

public A(int x)
{
    this.x = x;
}

private int x;

在C中,我不能.通常,我必须这样做.

public:
    A(int x_) : x(x_) 
    {
    }

private:
    int x;

有没有更好的方法?由于构造函数参数名称看起来很难看,当IDE IntelliSense弹出构造函数参数窗口时.

解决方法

在C中,您可以,如果您需要:

struct A {
  int x;
  A(int x) : x(x) {
    foo(this->x);
    // if you want the member instead of the parameter here
  }
};

虽然我也经常使用文体名称作为成员(例如_x),但我是为非公开成员做的.如果x是公共的,如本示例所示,我会这样做,如果我认为它更具可读性,请查看重命名ctor的参数.

编辑:由于人们似乎越来越偏离,我将在_x上澄清.该标准保留了一些标识符名称:

>任何名称空间中具有两个相邻下划线的名称
>任何名称空间中带有前导下划线后跟大写字母的任何名称
>在全球范围内具有前导下划线的任何名称

由于成员的范围属于班级,因此不属于第三类.也就是说,不继续偏离轨道会很好. :)如果您愿意,可以随意在C中提出有关保留标识符的问题,并在评论中发布链接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读