您的位置:首页 > 其它

" 'this' may not be used in this context"

2017-11-24 15:38 267 查看

” ‘this’ may not be used in this context”

class A
{

private:
int length;
public:
A();
void display(int l=this->length)
{
cout<<"the length is "<<l<<endl;
}

};

int main()
{

A a;
a.display();
return 0;

}


函数原型如下:

void display(int l=this->length)


实际编译器翻译后的如下:

void display(A * this, int l=this->length); //translated by the compiler


所以会出现问题,因为this被传入了两次,而c++不允许这样传入参数

在这个问题出现的同时还会报一个错误:invalid use of non-static data member

这是一个问题导致的两处报错。

解决方法:

因为我出现这个错误的原因是想省事直接传默认参数,所以我的解决方案也比较省事,我的方法是去掉后面传入的一个含有this的参数,在调用的时候加上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐