错误分析:非静态成员引用必须与特定对象相对

Posted 敲代码的Messi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误分析:非静态成员引用必须与特定对象相对相关的知识,希望对你有一定的参考价值。

引言

我们首先要知道一点,类的静态成员只能访问 静态成员变量。
发生这个错误一般有两种情况。

第一种:静态成员访问方式出错

在函数中对于静态成员,我们有下面的访问方式

ClassName::MemberName

但是如果我们直接用这种方式访问非静态成员的时候,就会报标题错误。

第二种:在静态函数内调用非静态函数

因为类的普通成员函数不能作为回调函数,所以我们经常将类中的回调函数设置为 静态成员函数。但是在静态成员函数中调用非静态成员函数也会报标题错误,对于这种场景,我们有两种解决方法:

  1. 将调用的非静态函数也改为静态。
  2. 声明一个实例对象来调用 该非静态函数。

以上是关于错误分析:非静态成员引用必须与特定对象相对的主要内容,如果未能解决你的问题,请参考以下文章

使用 C++ 的 Array 中的非静态成员引用错误

C#非静态的字段、方法或属性要求对象引用

7.28.2 static关键字(静态和成员)

VS提示“非静态的字段,方法或属性要求对象引用”

成员指针

多态时:成员特点,成员函数(非静态)