以下代码是否会导致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
,我更关心其他东西