C++error C2511: overloaded member function 'void (void)' not found in 'class'请大神指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++error C2511: overloaded member function 'void (void)' not found in 'class'请大神指教相关的知识,希望对你有一定的参考价值。

#include <iostream>#include <string>using namespace std;class Squarepublic: void input(); void onput(int a,int b,int c);private: int a; int b; int c; int num[3][3];;void Square::input() //int num[3][3]; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>num[i][j]; cin>>" ";void Square::onput() int a,b,c; a=num[0][0]*num[1][1]*num[2][2]; b=num[0][1]*num[1][2]*num[2][0]; c=num[0][2]*num[1][0]*num[2][1]; cout<<(a-b-c)<<endl;int main() Square s1; s1.input(); s1.onput(); return 0;报错见图片

参考技术A #include <iostream>
#include <string>
using namespace std;
class Square

public:
    void input();
    void onput();
private:
    int a;
    int b;
    int c;
    int num[3][3];
;

void Square::input()

//int num[3][3];
    int i,j;
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
            cin>>num[i][j];
    //cin>>" ";


void Square::onput()

    int a,b,c;
    a=num[0][0]*num[1][1]*num[2][2];
    b=num[0][1]*num[1][2]*num[2][0];
    c=num[0][2]*num[1][0]*num[2][1];
    cout<<(a-b-c)<<endl;


int main()

    Square s1;
    s1.input();
    s1.onput();
    return 0;

本回答被提问者和网友采纳
参考技术B void Square::onput() 在类中声明的时候带有三个参数,实现的时候没有参数,把声明中的参数去掉
void input();
void onput(int a,int b,int c); -----》这行修改成 void onput();
private:

C/C++重载(overload),重写(override,或覆盖),隐藏

转自:C++中的重载、重写(覆盖)、隐藏(Karen_Lh)


一、重载 

(1)相同的范围(在同一个类中);


(2)函数名字相同;


(3)参数不同;


(4)virtual关键字可有可无。


二、重写 
覆盖是指派生类函数覆盖基类函数


(1)不同的范围(分别位于派生类与基类);


(2)函数名字相同;


(3)参数相同;


(4)基类函数必须有virtual关键字。


三、隐藏 
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数


(1)不同的范围(分别位于派生类与基类);


(2)函数名字相同;


i. 参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。


ii. 参数相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与重写混淆)。

以上是关于C++error C2511: overloaded member function 'void (void)' not found in 'class'请大神指教的主要内容,如果未能解决你的问题,请参考以下文章

Keil5报错:error: more than one instance overload function “xx“ has C linkage

VHDL ERROR: found ‘0‘ definitions of operator “+“, cannot determine exact overloaded

cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function ‘rectangle‘ > Overload resolution

cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function ‘rectangle‘ > Overload resolution

C/C++重载(overload),重写(override,或覆盖),隐藏

gcc编译简单的c++出现错误<unresolved overloaded function type >size type