为什么成员函数会显示非成员函数

为什么成员函数会显示非成员函数呢明明在类里面了。,这是怎么回事

img

这个string是系统内置的类型,你换一个名字,比如叫mystring

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7538477
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:文本串加密和解密程序。一个文本串可用事先给定的字母映射表进行加密
  • 除此之外, 这篇博客: 操作符知识你会了,那表达式求值呢?中的 ✍表达式求值 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 表达式求值的顺序一部分是由操作符的优先级和结合性决定。

    同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。


  • 您还可以看一下 陈槐老师的零基础新手入门软件测试必知必会课程中的 系统讲解验收测试定义和验收需要注意的事项小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析:

    这个问题可能出现的原因是函数定义不规范或调用不规范。具体是指成员函数在定义时没有按照正确的格式写出,或者在调用时没有正确地指定该函数所在的类的实例。

    解决方法:

    1.检查函数定义是否规范。

    如果成员函数被显示为非成员函数,那么可能是因为函数定义时没有按照规范的格式进行。成员函数的定义应该按照以下格式定义:

    ReturnType ClassName::FunctionName(ParameterList)

    例如:

    int MyClass::Add(int x, int y)

    其中ReturnType是返回类型,ClassName是类名,FunctionName是函数名,ParameterList是参数列表。

    如果定义了成员函数的实现而不按照这种格式编写函数,那么就会出现函数被当作非成员函数的情况。因此,在编写代码时,应该检查函数定义是否规范,按照正确的格式进行编写。

    2.检查函数调用是否规范。

    如果成员函数被显示为非成员函数,那么可能是因为函数调用没有正确地指定该函数所在的类的实例。成员函数必须在类的实例中被调用。例如:

    MyClass obj; int result = obj.Add(3, 5);

    其中obj是MyClass的一个实例,而Add()是它的一个成员函数。必须在实例中调用它。如果函数调用中没有正确地指定该函数所在的类的实例,那么就会出现函数被当作非成员函数的情况。因此,在编写代码时,应该检查函数调用是否规范,确保调用正确的成员函数和正确的实例。

    参考代码:

    class MyClass { public: int Add(int x, int y) { return x + y; } };

    int main() { MyClass obj; int result = obj.Add(3, 5); return 0; }

    在这个例子中,MyClass有一个Add()函数,它需要两个整数作为参数,并返回它们的和。在使用Add()函数时,必须使用MyClass的实例,例如obj。如果没有正确地指定实例,那么就会出现函数被当作非成员函数的情况。