在cpp中声明的C ++访问常量值

时间:2013-02-01 04:46:05

标签: c++ visual-c++

我的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以便我可以在main方法中显示它?我需要检查一下我是否正确初始化它。

3 个答案:

答案 0 :(得分:0)

您可以通过getter函数x访问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; 
 };

请隐藏你的班级成员。

答案 1 :(得分:0)

您需要DeclareConstant对象实例来访问DeclareConstant的{​​{1}}成员。

x

但是,对于可能的目的和意图,您可以将DeclareConstant myConst; std::cout << myConst.x << std::endl; // Use x 作为静态成员

x

您现在不需要实例来获取class DeclareConstant { public: static const int x = 55; // ... }

的值
x

答案 2 :(得分:0)

如果所有实例都使用相同的常量值,则可以将其设置为静态。这有几个优点。

您可以将其定义如下。

class Part1 {

公共:      static const int x = 42;      第一部分(无效);      Part1(int x);      第一部分〜(无效);      double getX(){return x;}  };

并将其作为Part1::x访问。你也应该getX静态,然后你可以Part1::getX()

如果每个实例都有自己的const值,则无效。