What are the repercussions of redefining access modifiers?
<p>What would be some possible repercussions of redefining C++ access modifiers via preprocessed commands for the sake of inducing C#/Java like syntax?</p>

<pre><code>#include &lt;iostream&gt;

// The access modifiers are redefined here.
#define public public:
#define protected protected:
#define private private:

class Halo
{
    public Halo(int xx)
    {
        x = xx;
    }

    public int getX()
    {
        return x;
    }

    private int x;
};

int main()
{
    Halo* halo = new Halo(3);

    std::cout &lt;&lt; halo-&gt;getX();

    return 0;
}
</code></pre>
