2015-04-05 28 views
0

我想創建一個動態數組對象,使用靜態變量作爲指向下一個可用數組索引的指針。我敢肯定有更好的方法來做到這一點...使用靜態成員變量來計算創建的對象數

類存儲動態數組:

import std.stdio; 

import DataRow; 

class Database{ 

public: 
    this(){ /* intentionally left blank */} 

    void addRow(DataRow input){ 
     this.db[count] = input; 
     writeln(count); 
     count++; 
    } 

private: 
    static uint count; 
    DataRow[] db; 
} 

回答

2

d陣列可追加到~=運營商,並跟蹤自己length的。你不應該需要自己跟蹤長度:

void addRow(DataRow input){ 
    this.db ~= input; 
    writeln(db.length); // number of rows in db 
} 

根據你的例子,我不知道這是你的意圖。每個Database實例都有其自己的成員db,但它們將共享相同的count變量,因爲您聲明它爲static。 除非你有一個很好的理由保持一個靜態計數器(它將跟蹤所有實例Database中添加的行數),我只需要依靠每個數組來追蹤它自己的長度。

+0

那裏只會有一個數據庫對象,就像一個Singleton。但是,就像你說的那樣,我是以錯誤的方式去做的。 – StillLearningToCode 2015-04-05 21:39:44