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");
            }
        }
            public override void EmitCpp(CppEmitContext cec)
            {
                if (cec.Pass == CppPasses.CLASSDEF)
                {
                    var parms = this.ParameterInfo;
                    cec.Buf.Write("\tvoid set_", Property.MemberName.Name, "(");
                    cec.Buf.Write(cec.MakeCppFullTypeName(((Parameter)parms [0]).Type), " ", parms [0].Name);
                    cec.Buf.Write(");\n");
                }
                else
                {
                    var parms = this.ParameterInfo;
                    cec.Buf.Write("\tvoid set_", cec.MakeCppTypeName(Parent.CurrentType, false), "::", Property.MemberName.Name, "(");
                    cec.Buf.Write(cec.MakeCppFullTypeName(((Parameter)parms [0]).Type), " ", parms [0].Name);
                    cec.Buf.Write(") ", Location);
                    method_data.EmitCpp(Parent as TypeDefinition, cec);
                    cec.Buf.Write("\n");

                    block = null;
                }
            }
            public override void EmitCpp(CppEmitContext cec)
            {
                if (cec.Pass == CppPasses.CLASSDEF)
                {
                    cec.Buf.Write("\t", cec.MakeCppFullTypeName(this.Property.MemberType), " get_", Property.MemberName.Name, "();\n");
                }
                else
                {
                    cec.Buf.Write("\t", cec.MakeCppFullTypeName(this.Property.MemberType), cec.MakeCppTypeName(Parent.CurrentType, false), "::", " get_", Property.MemberName.Name, "() ", Location);
                    method_data.EmitCpp(Parent as TypeDefinition, cec);
                    cec.Buf.Write("\n");

                    block = null;
                }
            }