以下代码是否会导致C++;? 我看到有人在C++类中编写这样的代码: int foo ( int dummy ) { this->dummy = dummy; }

以下代码是否会导致C++;? 我看到有人在C++类中编写这样的代码: int foo ( int dummy ) { this->dummy = dummy; },c++,class,C++,Class,我们应该使用这样的代码吗?它会导致问题吗 我试着编译这样的东西,它似乎是有效的 @更新: 我发布的主要内容是关于名称dummy,以及内部变量this->dummy,如果它是导致的问题,那么对于成员函数来说这是非常好的,除了缺少return语句之外dummy将对成员变量进行阴影处理,因此您可以使用this->引用成员变量 int foo ( int dummy ) { this->dummy = dummy; // set member to argument return t

我们应该使用这样的代码吗?它会导致问题吗

我试着编译这样的东西,它似乎是有效的

@更新:
我发布的主要内容是关于名称
dummy
,以及内部变量
this->dummy
,如果它是导致的问题,那么对于成员函数来说这是非常好的,除了缺少
return
语句之外
dummy
将对成员变量进行阴影处理,因此您可以使用
this->
引用成员变量

int foo ( int dummy ) 
{
   this->dummy = dummy; // set member to argument
   return this->dummy;
}
对于比简单的集合函数更复杂的事情,不要这样做,因为这会让人困惑

int foo ( int dummy )  // Bad practise! Rename this param as the function isn't a setter
{
   this->dummy = dummy * 2 + 1; 
   return this->dummy;
}

对于成员函数来说,这很好,只是缺少了一个
return
语句
dummy
将对成员变量进行阴影处理,因此您可以使用
this->
引用成员变量

int foo ( int dummy ) 
{
   this->dummy = dummy; // set member to argument
   return this->dummy;
}
对于比简单的集合函数更复杂的事情,不要这样做,因为这会让人困惑

int foo ( int dummy )  // Bad practise! Rename this param as the function isn't a setter
{
   this->dummy = dummy * 2 + 1; 
   return this->dummy;
}

这样做没有错。如果使用dummy假设它来自于类,但实际上来自于参数,那么它可能会变得混乱

依我看,最好用一些东西来表示它是类成员。有些人只是简单地使用mDummy,另一些人只是写Dummy


你喜欢什么取决于你自己,但最重要的是你应该始终如一。

这样做没有错。如果使用dummy假设它来自于类,但实际上来自于参数,那么它可能会变得混乱

依我看,最好用一些东西来表示它是类成员。有些人只是简单地使用mDummy,另一些人只是写Dummy


这取决于你喜欢什么,但最重要的是你应该保持一致。

代码不好。函数定义为返回
int
,但没有
return
语句。编译器可能只会对此发出警告,但调用
foo
的函数可能会期望它返回一个有效值,而实际情况并非如此,并且可能会发生错误。

代码不正常。函数定义为返回
int
,但没有
return
语句。编译器可能只会对此发出警告,但调用
foo
的函数可能会期望它返回一个有效值,而实际情况并非如此,并且可能会发生错误。

如果要传递与成员变量同名的参数,则必须这样做。
但是使用不同的名称来避免隐藏(成员)变量可能是更好的做法。有不同的编码风格,一些会使用虚拟变量,一些会使用mDummy或其他方式来命名成员变量。这可以减少代码的混乱。

如果要传递与成员变量同名的参数,则必须这样做。 但是使用不同的名称来避免隐藏(成员)变量可能是更好的做法。有不同的编码风格,一些会使用虚拟变量,一些会使用mDummy或其他方式来命名成员变量。这使您的代码不那么混乱

  • 那就行了
  • 别这么做,太令人困惑了
  • 那就行了
  • 别这么做,太令人困惑了
    您的使用没有问题,但是代码需要返回一个int作为int函数:)

    当前类中的伪变量被分配给传递的int,但是请记住它们是不同的,但是现在指向同一个对象,因此最好给它一个不同的名称,作为它在不同的类中的名称

    但是,在某些变量类型下,可能会降低精度

    #include <stddef.h>
    
    typedef struct intlist {
      int size;
      int i[1];
    } intlist;
    
    intlist *
    makeintlist (int size)
    {
      intlist *ilp = malloc (offsetof (intlist, i[size])); /* not C++ */
      ilp->size = size;
      return ilp;
    }
    
    #包括
    类型定义结构intlist{
    整数大小;
    int i[1];
    }intlist;
    内部列表*
    makeintlist(整数大小)
    {
    ItList*ILP= MALOC(OffStof(ItListI[six]));/*C++(不)
    ilp->size=size;
    返回ilp;
    }
    

    成员变量size分配给size

    您的使用没有问题,但是代码需要返回一个int作为其int函数:)

    当前类中的伪变量被分配给传递的int,但是请记住它们是不同的,但是现在指向同一个对象,因此最好给它一个不同的名称,作为它在不同的类中的名称

    但是,在某些变量类型下,可能会降低精度

    #include <stddef.h>
    
    typedef struct intlist {
      int size;
      int i[1];
    } intlist;
    
    intlist *
    makeintlist (int size)
    {
      intlist *ilp = malloc (offsetof (intlist, i[size])); /* not C++ */
      ilp->size = size;
      return ilp;
    }
    
    #包括
    类型定义结构intlist{
    整数大小;
    int i[1];
    }intlist;
    内部列表*
    makeintlist(整数大小)
    {
    ItList*ILP= MALOC(OffStof(ItListI[six]));/*C++(不)
    ilp->size=size;
    返回ilp;
    }
    

    成员变量大小分配给大小

    为什么不可以?为什么会导致问题?这是一个普通的二传手。但是我想,我会将这个方法创建为
    void
    ,因为它不会返回任何东西。@WagnerVaz,请查看我的
    @update
    ,我更关心其他事情为什么这样不好?为什么这会导致问题?这是一个普通的二传手。但是我想,我会将这个方法创建为
    void
    ,因为它不会返回任何东西。@WagnerVaz,请查看我的
    @update
    ,我更关心其他东西