Operator [] overloading
<p>I have the following code:</p>

<pre><code>class A
{
    public:
    A() {};
    void operator[](int x)
    {
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    A a;
    a.operator[](0);
    a[0];
}
</code></pre>

<p>Both calls work, but I want to know whether there is any difference. Is one more efficient than the other? Do other things happen(besides executing the code in the overloaded operator) in either case?</p>

<p>EDIT:
Is there a case why you would want to write a.operator instead of just []. What's the point of overloading if you're not using the short syntax?</p>
