class A
{
public:
    int get(void){return stuff;}
    void set(int s){stuff = s;}
private:
    int stuff;
};
int _tmain(int argc, _TCHAR* argv[])
{
    A a;
    A b();
    A* ap = new A;
    A* bp = new A();
}
I don't know what the difference is between the four lines in main() exactly and which situations I might use one versus the other (other than being on the stack or heap). I noticed that the fourth line actually initializes "stuff" to 0, whereas the other lines do not. The second line doesn't seem to be anything at all, which seems odd.
Question: What is each line's tradeoffs/meanings (in main())? Whether to use parens or not is confusing to me.
 
     
    