2016-07-11 8 views
-1

私はこのクラスを書きました。私はそれを定義していますが、なぜ私はwが定義されていないことを受けているのかわかりません。あなたは何が問題なのか知っていますか?「w」が定義されていないとして次のコードの問題は何ですか?

#include "stdafx.h" 
#include <iostream> 
#include <string> 
using namespace std; 

class add{ 
    public: 
    void counter(); 
    void z(); 
    string w; 
}; 

void z(){ 
    cin>>w; 
    getline(cin,w); 
    cout<<w; 
} 


int main(){ 
    add s; 
    s.z(); 
    cin.get(); 
} 
+1

コードをフォーマットします。 –

答えて

2

あなたはメンバ関数を定義void z()void add::z(){を記述する必要があります。

これ以外の場合は、グローバルファンクションvoid z()を定義しています。wが見つかりません。それがコンパイラを混乱させる原因です。

1

変数「W」は、クラスの追加のメンバーとして定義されます。クラスaddには2つのパブリックメンバー関数もあります。与えられたコードでは、zはvoid add::z()の実装ではなく、z()と呼ばれる新しいグローバル関数です。 void(){行をvoid add::z(){に変更しても問題ありません。

関連する問題