在D中每個(gè)對(duì)象都有通過(guò)一個(gè)名為this指針,這個(gè)指針訪問(wèn)它自己的地址。this 指針是一個(gè)隱含的參數(shù),所有的成員函數(shù)。因此,一個(gè)成員函數(shù)內(nèi),this 可以用來(lái)指調(diào)用對(duì)象。
讓我們?cè)囋囅旅娴睦泳兔靼琢藅his指針的概念:
import std.stdio; class Box { public: // Constructor definition this(double l=2.0, double b=2.0, double h=2.0) { writeln("Constructor called."); length = l; breadth = b; height = h; } double Volume() { return length * breadth * height; } int compare(Box box) { return this.Volume() > box.Volume(); } 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 if(Box1.compare(Box2)) { writeln("Box2 is smaller than Box1"); } else { writeln("Box2 is equal to or larger than Box1"); } }
當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:
Constructor called. Constructor called. Box2 is equal to or larger than Box1