<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 的类型作为成员函数的返回类型不可见

        时间:2023-10-17
      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 的类型作为成员函数的返回类型不可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:C++ 中的局部/静态变量作用域 下一篇:为什么编译器会在模板参数列表中选择基类构造函数?

                  相关文章

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

                        <bdo id='YyP7C'></bdo><ul id='YyP7C'></ul>
                    2. <tfoot id='YyP7C'></tfoot>

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

                    3. <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>