2016-03-29 8 views
0

データメンバーを持つクラス(バージョン)を作成しようとしています。メンバー関数はセッター(カスケード呼び出しを許可)とゲッター(PLPを使用して定数オブジェクトを処理する)です。 intメインでは、ユーザーが数値を入力できるようになり、1つのステートメント内のすべてのデータメンバーをカスケーディングするメンバー関数呼び出しを使用し、ゲッターを呼び出してバージョンを表示し、データメンバーの値だけを返す必要があります。カスケードとPLPを使用してクラスを作成する

私はかなりすべてをコード化しましたが、私はステップを逃しているか、パラメータに間違っているように感じます。私のエラーは、私のセッターには「)」が必要だと言いますが、それは別の問題であるように感じます。私はどのようにこれを行うためのすべてのメモを取得していないので、誰かが私が行方不明または修正する必要があることを教えてもらえますか?ありがとう!

#include<iostream> 

using namespace std; 

class Version 
{ 
private: 
    int major, minor, service_pack; 
public: 
    Version(); 
    Version& setMajor(int maj); 
    Version& setMinor(int min); 
    Version& setService_pack(int sp); 
    int getMinor(Version *const this); 
    int getMajor(Version* const this); 
    int getService_pack(Version* const this); 
}; 

Version::Version() 
{ 
    major = 0; 
    minor = 0; 
    service_pack = 0; 
} 

Version& Version::setMinor(int min) 
{ 
    minor = min; 
    return *this; 
} 

Version& Version::setMinor(int maj) 
{ 
    major = maj; 
    return *this; 
} 

Version& Version::setMinor(int sp) 
{ 
    service_pack = sp; 
    return *this; 
} 

int Version::getMinor(Version* const this) 
{ 
    return this->minor; 
    (*this).minor; 
} 

int Version::getMajor(Version* const this) 
{ 
    return this->major; 
    (*this).major; 
} 

int Version::getService_pack(Version* const this) 
{ 
    return this->service_pack; 
    (*this).service_pack; 
} 

int main() 
{ 
    int minor, major, service_pack; 
    Version a; 
    cout << "Enter minor, major, and service pack: " << endl; 
    cin >> minor, major, service_pack; 

    a.setMinor(minor).setMajor(major).setService_pack(service_pack); 

    cout << "Major: " << a.getMajor() << "Minor: "<< a.getMinor << "Service Pack: " << a.getService_pack(); 

    system("PAUSE"); 

} 

答えて

0

あなたはa.getMinor()をdiplayingためmain()でparenbthesesが欠落しています。かっこがなければ、メンバ関数自体を参照します。

getterは、値を返す場合、原則的に引数を取らないようにする必要があります。いずれにしても、thisという引数を渡さないでください。あなたが作ることができる

一つの更なる向上、constとしてゲッターを宣言するために、次のようになります。

int Version::getMinor() const 
{ 
    return minor; // this-> is only needed to disambiguate 
} 
+0

ああ良い目!私のgetterのための私のパラメータが正しいかどうかは分かりますか? – TheEWL

+0

いいえ、ゲッターは引数を取らないでください。 – Christophe

+0

@TheEWL私は完成のために私の答えを編集しました – Christophe

関連する問題