D编程 Static members of a class
2021-09-01 11:31 更新
让我们尝试以下示例以了解静态数据成员的概念-
import std.stdio;
class Box {
public:
static int objectCount=0;
//Constructor definition
this(double l=2.0, double b=2.0, double h=2.0) {
writeln("Constructor called.");
length=l;
breadth=b;
height=h;
//Increase every time object is created
objectCount++;
}
double Volume() {
return length * breadth * height;
}
private:
double length; //Length of a box
double breadth; //Breadth of a box
double height; //Height of a box
};
void main() {
Box Box1=new Box(3.3, 1.2, 1.5); //Declare box1
Box Box2=new Box(8.5, 6.0, 2.0); //Declare box2
//Print total number of objects.
writeln("Total objects: ",Box.objectCount);
}
编译并执行上述代码后,将产生以下输出-
Constructor called.
Constructor called.
Total objects: 2
静态函数
静态成员函数只能从类外部访问,让我们尝试以下示例以了解静态函数成员的概念-
import std.stdio;
class Box {
public:
static int objectCount=0;
//Constructor definition
this(double l=2.0, double b=2.0, double h=2.0) {
writeln("Constructor called.");
length=l;
breadth=b;
height=h;
//Increase every time object is created
objectCount++;
}
double Volume() {
return length * breadth * height;
}
static int getCount() {
return objectCount;
}
private:
double length; //Length of a box
double breadth; //Breadth of a box
double height; //Height of a box
};
void main() {
//Print total number of objects before creating object.
writeln("Inital Stage Count: ",Box.getCount());
Box Box1=new Box(3.3, 1.2, 1.5); //Declare box1
Box Box2=new Box(8.5, 6.0, 2.0); //Declare box2
//Print total number of objects after creating object.
writeln("Final Stage Count: ",Box.getCount());
}
编译并执行上述代码后,将产生以下输出-
Inital Stage Count: 0
Constructor called.
Constructor called
Final Stage Count: 2
以上内容是否对您有帮助:
更多建议: