0

我有一个 main 方法,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

您可以x通过 getter 函数访问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 回答
0

您需要一个对象实例DeclareConstant访问DeclareConstantx成员。

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 部分{

公共:静态常量 int x = 42;第 1 部分(无效);第 1 部分(int x);〜第1部分(无效);双 getX(){返回 x;} };

并简单地访问它Part1::x。你也应该做getX静态,然后你可以做Part1::getX()

const如果每个实例都有自己的值,这将不起作用。

于 2013-02-01T04:53:20.207 回答