Oop 使用静态成员变量计算创建的对象数
我试图创建一个对象的动态数组,使用一个静态变量作为指向下一个可用数组索引的指针。我相信有更好的方法来做到这一点 类存储动态数组:Oop 使用静态成员变量计算创建的对象数,oop,static,d,Oop,Static,D,我试图创建一个对象的动态数组,使用一个静态变量作为指向下一个可用数组索引的指针。我相信有更好的方法来做到这一点 类存储动态数组: import std.stdio; import DataRow; class Database{ public: this(){ /* intentionally left blank */} void addRow(DataRow input){ this.db[count] = input; writeln
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数组可以附加
~=
操作符,并跟踪它们自己的长度。您不需要自己记录长度:
void addRow(DataRow input){
this.db ~= input;
writeln(db.length); // number of rows in db
}
根据你的例子,我不确定这是否是你想要的。每个数据库
实例都有自己的成员db
,但所有实例都将共享相同的count
变量,因为您将其声明为静态
。
除非您有充分的理由保留一个静态计数器(它将跟踪在数据库的所有实例中添加的行数),否则我将仅依靠每个数组跟踪其自身的长度。只有一个db对象,就像一个单例一样。但是,就像你说的,我走错了方向。