C++: use of “().” and “()[].”
<p>I am trying to understand the programming of Siemens scanner using C++ and given that my C++ skills are limited, I am having problems in understanding many parts of the code provided by the vendor. </p>

<h2>Problem 1</h2>

<p>For instance, the code uses reference (rMrProt) to object MrProt and notations (such as the use of use of <code>().</code> and <code>()[].</code>) are very confusing to me.
For instance:</p>

<pre><code>ImageSamples = rMrProt.kSpace().baseResolution()
ImageSize = rMrProt.sliceSeries()[0].readoutFOV()
</code></pre>

<p>Some explanation of these statements would be appreciated.</p>

<p>All information regarding object MrProt are in “MrProt.h”, “MrProt.dll”, “MrProt.lib”. All these files have been shared at:
<a href="https://docs.google.com/open?id=0B0Ah9soYnrlIYWZkNDU2M2EtYTNmNC00YTc5LTllMzItYzIyMWU4M2ZhY2Fi" rel="nofollow">https://docs.google.com/open?id=0B0Ah9soYnrlIYWZkNDU2M2EtYTNmNC00YTc5LTllMzItYzIyMWU4M2ZhY2Fi</a></p>

<h2>Problem 2</h2>

<p>Also, I have been trying to read MrProt.dll and MrProt.lib without any success. Only now, I came to know of dumpbin. Any help would be appreciated.</p>

<h2>Problem 3</h2>

<p>Another confusion that I have is related to some part of MrProt.h itself. There is a statement in MrProt.h:</p>

<pre><code>class __IMP_EXP MrProt: public MrProtocolData::MrProtDataDelegate
{
   typedef MrProtocolData::MrProtDataDelegate BasicImplementation;
   public:
   MrProt();
   MrProt(const MrProt&amp; rSource);
   …
   ….
}
</code></pre>

<p>Here, <code>__IMP_EXP</code>, I guess that it’s some compiler specific stuff.. some decoration etc. But, I still have no idea what to make of this.</p>
