簡體   English   中英

返回一組數據類型之一的最佳模式

[英]Best pattern for returning one of set of types of data

我有一個接受字符串並使用正則表達式方法確定該字符串是否表示浮點數,整數或字符串的方法。

返回結果浮點數,整數或字符串的最佳模式是什么?

所以我的基本方法原型是:

void interpretString(const std::string &s);

取回結果浮點數,整數或字符串的最佳方法是什么? 目前,我將方法擴展如下:

enum dataType { None, String, Float, Int };
dataType interpretString(const std::string &s,
                         string &s,
                         float &f,
                         int &i);

在相應的s,f或i變量中返回數據的位置。 這似乎不太令人滿意,因為我傳遞了永遠不會使用的數據(例如,如果輸入字符串為浮點型,則該字符串和整數返回值將不被使用)

有沒有更好的辦法?

這是使用函數對象的另一種方法:

struct Evaluation_Assignment
{
  virtual void assign(const std::string& s) = 0;
  virtual void assign(int i) = 0;
  virtual void assign(double d) = 0;
};

void Interpret_String(const std::string string_to_process,
                      Evaluation_Assignment& processor)
{
  if (interpretation_was_string)
  {
     processor.assign(s);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM