使用静态成员变量来计算创建的对象数

Using a static member variable to count number of objects created

我正在尝试创建一个动态对象数组,使用静态变量作为指向下一个可用数组索引的指针。我相信有更好的方法来做到这一点...

class 存储动态数组:

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;
}

D 数组可以用 ~= 运算符追加,并跟踪它们自己的 length。您不需要自己记录长度:

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

根据您的示例,我不确定这是否符合您的预期。每个 Database 实例都有自己的成员 db,但所有实例都将共享相同的 count 变量,因为您将其声明为 static。 除非你有充分的理由保留一个静态计数器(它将跟踪在 Databaseall 个实例中添加的行数),否则我只会依靠每个数组来跟踪它自己的长度。