1

このようなもの:

class someclass
{
public:
    someclass();
    ~someclass();

    long   Set(int x, int y);

private:
        int _x;
        int _y;
};

long   Set(int x, int y)
{
   _x = x;
   _y = y;
}

しかし、このように書くだけでは、 Set() 関数内で _x を認識できません。では、独自のメソッドを使用してクラスのプライベート プロパティを設定するにはどうすればよいでしょうか。どうもありがとう。

4

3 に答える 3

6

そこにスコープの問題があります。これはうまくいくはずです:

long someclass::Set(int x, int y)
{
   _x = x;
   _y = y;
}
于 2012-11-09T16:05:00.950 に答える
4

クラス定義の外でメンバー関数を定義する場合は、適切にスコープする必要があります。

long someClass::Set(int x, int y)
{
  _x = x;
 _y = y;
}

あなたが書いたものは、無関係なグローバル関数を定義しましたSet

また、 の戻り値の型はSetおそらく である必要がありますvoid(または、それから何かを返す必要があります)。

于 2012-11-09T16:06:11.307 に答える
3

あなたは事実上タイプミスです。1 つのメンバー関数を宣言しました:

class someclass
{
public:
    long   Set(int x, int y);

...しかし、完全に異なる無料の関数を実装しました:

long   Set(int x, int y)
{
   _x = x;
   _y = y;
}

後者を次のように変更します。

long   someclass:Set(int x, int y)
{
   _x = x;
   _y = y;
}
于 2012-11-09T16:06:14.047 に答える