0

宣言しmain.cppた定数の値を表示したいというメインメソッドがあります。int

DeclareConstantクラスを追加しました。

これが私のDelcareConstant.hです

#pragma once
class DeclareConstant
    {

 public:
     const int x;
     Part1(void);
     Part1(int x);
     ~Part1(void);
     double getX(){return x;}
 };

そしてソース

#include "Part1.h"

Part1::Part1() : x(55){
}

Xにアクセスして、メインのメソッドで表示できるようにするにはどうすればよいですか?正しく初期化しているかどうかを確認する必要があります。

4

3 に答える 3

0

のメンバーにアクセスするには、のオブジェクトまたはインスタンスが必要です。DeclareConstantDeclareConstantx

DeclareConstant myConst;
std::cout << myConst.x << std::endl;   // Use x

しかし、あなたの可能な目的と意図のために、あなたは静的なメンバーxとして作ることができます。

class DeclareConstant {
public:
   static const int x = 55;
   // ...
}

x:の値を取得するためにインスタンスは必要ありません。

std::cout << DeclareConstant::x << std::endl;   // Use x
于 2013-02-01T04:49:32.110 に答える
0

すべてのインスタンスが同じ定数値を使用する場合は、静的にすることができます。これにはいくつかの利点があります。

以下のように定義できます。

クラスパート1{

public: static const int x = 42; Part1(ボイド); Part1(int x); 〜Part1(ボイド); double getX(){return x;} };

として簡単にアクセスできますPart1::xgetX静的にする必要がありますPart1::getX()

各インスタンスに独自のconst値がある場合、これは機能しません。

于 2013-02-01T04:53:20.207 に答える
0

xgetter 関数を介してアクセスできますgetX()。次に例を示します。

DeclareConstant dc;
std::cout << dc.getX() << std::endl;

または

DeclareConstant dc;
std::cout << dc.x << std::endl;

ただし、次のように getX を定義する必要があります。

class DeclareConstant
{

 public:
     int getX() const {return x;}

 private:
  const int x; 
 };

クラスメンバーを非表示にしてください。

于 2013-02-01T04:47:45.137 に答える