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

时间:2015-04-05 19:58:00

标签: oop static d

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

存储动态数组的类:

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

1 个答案:

答案 0 :(得分:2)

D阵列可以附加到~=运算符,并跟踪自己的length。您不应该自己跟踪长度:

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

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