編輯:感謝所有的快速反應,我現在對這個概念有了更好的理解。另外,我會盡量讓我的錯誤消息更加清晰。 編輯:用我最新的代碼更新。錯誤發生在第18行。另外,我開始懷疑我的最新問題是否與原始類本身有關?「非法使用非靜態成員函數」這是什麼?
我想教自己在C + +中的類和對象。我做了一次,只是聲明void
函數,在屏幕上輸出一些東西,調用main中的對象,一切正常。
現在,我想擴大這一點,並做一個簡單的補充。不過,我得到的代碼塊一對夫婦的錯誤:
error: invalid use of non-static member function 'int Addition::add(int, int)'
error: no matching function for call to 'Addition::add()'
這裏是我的代碼:
#include <iostream>
using namespace std;
class Addition {
public:
int add (int x, int y) {
int sum;
sum=x+y;
return sum;
}
};
int main()
{
int num1;
int num2;
int ans=addobj.add(num1,num2);
Addition addobj;
addobj.add(num1,num2);
cout<<"Enter the first number you want to add"<<endl;
cin>>num1;
cout<<"Enter the second number you want to add"<<endl;
cin>>num2;
cout<<"The sum is "<<ans<<endl;
}
第一個錯誤不適用於上面的代碼。發佈編譯錯誤時,請確保發佈確切的代碼,確切的錯誤代碼和編譯器投訴的行的指示。 (順便說一句,第一個錯誤信息看起來像你嘗試在'Addition'成員之外的代碼中的某處執行'Addition :: add') – 2012-08-08 16:56:54