public override void EmitCpp(CppEmitContext cec)
        {
            base.EmitCpp(cec);

            if ((this.ModFlags & Modifiers.STATIC) != 0)
            {
                cec.Buf.Write("\tstatic ", Location);
            }
            else
            {
                cec.Buf.Write("\t", Location);
            }

            if (cec.Pass == CppPasses.CLASSDEF)
            {
                cec.Buf.Write(cec.MakeCppFullTypeName(this.ReturnType), " ", this.MethodName.Name, "(");
                parameters.EmitCpp(cec);
                cec.Buf.Write(");\n");
            }
            else
            {
                cec.Buf.Write(cec.MakeCppFullTypeName(this.ReturnType), " ", cec.MakeCppTypeName(Parent.CurrentType, false), "::", this.MethodName.Name, "(");
                parameters.EmitCpp(cec);
                cec.Buf.Write(") ");

                if (MethodData != null)
                {
                    MethodData.EmitCpp(Parent, cec);
                }

                Block = null;

                cec.Buf.Write("\n");
            }
        }