<small id='TANGx'></small><noframes id='TANGx'>

<legend id='TANGx'><style id='TANGx'><dir id='TANGx'><q id='TANGx'></q></dir></style></legend><tfoot id='TANGx'></tfoot>
    <bdo id='TANGx'></bdo><ul id='TANGx'></ul>

        <i id='TANGx'><tr id='TANGx'><dt id='TANGx'><q id='TANGx'><span id='TANGx'><b id='TANGx'><form id='TANGx'><ins id='TANGx'></ins><ul id='TANGx'></ul><sub id='TANGx'></sub></form><legend id='TANGx'></legend><bdo id='TANGx'><pre id='TANGx'><center id='TANGx'></center></pre></bdo></b><th id='TANGx'></th></span></q></dt></tr></i><div id='TANGx'><tfoot id='TANGx'></tfoot><dl id='TANGx'><fieldset id='TANGx'></fieldset></dl></div>
      1. typedef 的类型作为成员函数的返回类型不可见

        typedef#39;d type not visible as return type of a member function(typedef 的类型作为成员函数的返回类型不可见)
      2. <i id='p5fbu'><tr id='p5fbu'><dt id='p5fbu'><q id='p5fbu'><span id='p5fbu'><b id='p5fbu'><form id='p5fbu'><ins id='p5fbu'></ins><ul id='p5fbu'></ul><sub id='p5fbu'></sub></form><legend id='p5fbu'></legend><bdo id='p5fbu'><pre id='p5fbu'><center id='p5fbu'></center></pre></bdo></b><th id='p5fbu'></th></span></q></dt></tr></i><div id='p5fbu'><tfoot id='p5fbu'></tfoot><dl id='p5fbu'><fieldset id='p5fbu'></fieldset></dl></div>

          <tbody id='p5fbu'></tbody>
      3. <legend id='p5fbu'><style id='p5fbu'><dir id='p5fbu'><q id='p5fbu'></q></dir></style></legend>
          • <small id='p5fbu'></small><noframes id='p5fbu'>

          • <tfoot id='p5fbu'></tfoot>

                  <bdo id='p5fbu'></bdo><ul id='p5fbu'></ul>
                • 本文介绍了typedef 的类型作为成员函数的返回类型不可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  此程序无法编译(使用 gcc-4.5).错误消息说:

                  This program fails to compile(using gcc-4.5). The error message says:

                  错误:‘myType_t’没有命名类型

                  error: ‘myType_t’ does not name a type

                    1 class abc{
                    2 //typedef int myType_t;
                    3 
                    4   public:
                    5 typedef int myType_t;
                    6 
                    7     abc();
                    8     myType_t fun1();
                    9 };
                   10 
                   11 myType_t abc::fun1()
                   12 {
                   13   return 0;
                   14 }
                   15 
                   16 int main()
                   17 {
                   18   abc abc1;
                   19   return 0;
                   20 }
                  

                  现在在 abc 类之外声明 typedef int myType_t; 使这个编译.我的困惑是,如果成员函数的返回类型在类中被 typedef,有什么问题.

                  Now declaring typedef int myType_t; outside the class abc makes this compile. My confusion is, what is the problem if the return type of a member function is typedef'd inside the class.

                  推荐答案

                  来自 C++ 标准:

                  9.9 嵌套类型名称 [class.nested.type]

                  类型名称遵循与其他名称完全相同的范围规则.特别是,在类定义中定义的类型名称不能在没有限定的情况下在其类之外使用.

                  class X {
                  public :
                     typedef int I;
                     class Y { /  . . .  / };
                     I a;
                  };
                  
                  I b;            // error
                  Y c;            // error
                  X::Y d;         // OK
                  X::I e;         // OK
                  

                  所以你需要访问它:

                  abc::myType_t abc::fun1()
                  

                  这篇关于typedef 的类型作为成员函数的返回类型不可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Is Type(::x); valid?(是类型(::x);有效的?)
                  Difference between an inline function and static inline function(内联函数和静态内联函数的区别)
                  Compilation fails randomly: quot;cannot open program databasequot;(编译随机失败:“无法打开程序数据库)
                  Too many initializers error for a simple array in bcc32(bcc32 中的简单数组的初始值设定项过多错误)
                  No Member named stoi in namespace std(命名空间 std 中没有名为 stoi 的成员)
                  Error using a constexpr as a template parameter within the same class(在同一个类中使用 constexpr 作为模板参数时出错)

                      1. <legend id='YyP7C'><style id='YyP7C'><dir id='YyP7C'><q id='YyP7C'></q></dir></style></legend>

                          <tbody id='YyP7C'></tbody>
                          <bdo id='YyP7C'></bdo><ul id='YyP7C'></ul>
                        • <tfoot id='YyP7C'></tfoot>

                          <small id='YyP7C'></small><noframes id='YyP7C'>

                          • <i id='YyP7C'><tr id='YyP7C'><dt id='YyP7C'><q id='YyP7C'><span id='YyP7C'><b id='YyP7C'><form id='YyP7C'><ins id='YyP7C'></ins><ul id='YyP7C'></ul><sub id='YyP7C'></sub></form><legend id='YyP7C'></legend><bdo id='YyP7C'><pre id='YyP7C'><center id='YyP7C'></center></pre></bdo></b><th id='YyP7C'></th></span></q></dt></tr></i><div id='YyP7C'><tfoot id='YyP7C'></tfoot><dl id='YyP7C'><fieldset id='YyP7C'></fieldset></dl></div>