2

Load()たとえば、関数を持つクラスがあります。

class DB {
private:
    pt_db *db;
public:
    DB(const char *path);
    Write(const char *path);
    int Load(const char *path);
};

Load()そして、渡された引数に応じて、関数からステータスを返したいと思います。

例えば:

Load(<correct path to the file with valid content>) // return 0 - success
Load(<non-existent path to file>) // return 1
Load(<correct file path, but the content of the file is wrong>) // return 2

それにもかかわらず、私は心配しています:

  1. 型の安全性 - ステータス コードとしてのみ使用できるオブジェクトを返したいということです。

    int res = Load(<file path>);
    
    int other  = res * 2; // Should not be possible
    
  2. 事前定義された値のみを使用してください。エラーにより、 (関数で何か問題が発生したことを示唆しましょう)のintような他のステータスを返すことができ、このエラーコードが渡されるとは思わない場合:return 3Load()

    int res = Load(<file path>);
    
    if(res == 1) {}
    
    else if (res == 2) {};
    
    ...
    
    // Here I have that code fails by reason that Load() returned non-expected 3 value
    
  3. それについては、C++11 のベスト プラクティスを使用してください。

誰でも助けてもらえますか?

4

1 に答える 1