правильное использование элементов enum - PullRequest
0 голосов
/ 19 мая 2018

Предположим, у меня есть эти файлы, например:

А *

namespace cool
{
  class A
  {
    public:
      enum Status {OK, NotOK, NotOK2};
   };
}

чч

#include "A.h"
namespace cool
{
  class B
  {
    public:
      A::Status doSth(int param1);
  };
}

B.cpp

using cool::A;
using cool::B;

A::Status B::doSth(int param1)
{
  return A::Status::OK;
}

Поэтому моя проблема в том, что я не хочу писать A::Status::OK всякий раз, когда я хочу вернуть тип Status.Есть ли способ просто вернуть OK?Или Status::OK, чтобы я мог хотя бы сэкономить время, не записывая имя класса каждый раз.

Я, очевидно, до сих пор пытался добавить using cool::A::Status;, using A::Status; и using cool::A::Status::OK;.Но затем я получаю ошибку компиляции:

'cool :: A' не является пространством имен или enum с незаданной областью

Есть идеи о том, как просто нужно вернуть OK?

1 Ответ

0 голосов
/ 19 мая 2018

Решение 1: Вы уже можете удалить Status::

return A::/*Status::*/OK;

Решение 2: Вы можете переместить enum Status {OK, NAK, MAK}; за пределы класса A

Решение 3: сделать #define вызываемымOK

#define OK A::Status::OK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...