1. <small id='CAL5r'></small><noframes id='CAL5r'>

      <tfoot id='CAL5r'></tfoot>

      • <bdo id='CAL5r'></bdo><ul id='CAL5r'></ul>

        <legend id='CAL5r'><style id='CAL5r'><dir id='CAL5r'><q id='CAL5r'></q></dir></style></legend>

        <i id='CAL5r'><tr id='CAL5r'><dt id='CAL5r'><q id='CAL5r'><span id='CAL5r'><b id='CAL5r'><form id='CAL5r'><ins id='CAL5r'></ins><ul id='CAL5r'></ul><sub id='CAL5r'></sub></form><legend id='CAL5r'></legend><bdo id='CAL5r'><pre id='CAL5r'><center id='CAL5r'></center></pre></bdo></b><th id='CAL5r'></th></span></q></dt></tr></i><div id='CAL5r'><tfoot id='CAL5r'></tfoot><dl id='CAL5r'><fieldset id='CAL5r'></fieldset></dl></div>
      1. 如果我只想在模板中专门化一种方法,我该怎么

        时间:2023-05-24

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

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

              <tbody id='xgVWV'></tbody>

                • <bdo id='xgVWV'></bdo><ul id='xgVWV'></ul>
                  <legend id='xgVWV'><style id='xgVWV'><dir id='xgVWV'><q id='xgVWV'></q></dir></style></legend>

                  <tfoot id='xgVWV'></tfoot>
                • 本文介绍了如果我只想在模板中专门化一种方法,我该怎么做?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  假设我有一个模板类

                  template <typename T> struct Node
                  {
                      // general method split
                      void split()
                      {
                          // ... actual code here (not empty)
                      }
                  };
                  

                  需要在 Triangle 类的情况下专门化这个......类似

                  Need to specialise this in the Triangle class case.. something like

                  template <>
                  struct Node <Triangle*>
                  {
                      // specialise the split method
                      void split() {}
                  } ;
                  

                  但我不想想重新重写整个模板!唯一需要更改的是 split() 方法,仅此而已.

                  but I don't want to rewrite the entire template over again! The only thing that needs to change is the split() method, nothing more.

                  推荐答案

                  您可以在类声明之外仅为该函数提供专门化.

                  You can provide a specialization for only that function outside the class declaration.

                  template <typename T> struct Node
                  {
                      // general method split
                      void split()
                      {
                          // implementation here or somewhere else in header
                      }
                  };
                  

                  //cpp中声明的函数原型void splitIntNode( Node & node );

                  // prototype of function declared in cpp void splitIntNode( Node & node );

                  template <>
                  void Node<int>::split()
                  {
                       splitIntNode( this ); // which can be implemented
                  }
                  
                  int main(int argc, char* argv[])
                  {
                     Node <char> x;
                     x.split(); //will call original method
                     Node <int> k;
                     k.split(); //will call the method for the int version
                  }
                  

                  如果 splitIntNode 需要访问私有成员,您可以将这些成员传递给函数而不是整个节点.

                  If splitIntNode needs access to private members, you can just pass those members into the function rather than the whole Node.

                  这篇关于如果我只想在模板中专门化一种方法,我该怎么做?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:程序仅在发布版本时崩溃——如何调试? 下一篇:C++ 重载函数作为模板参数

                  相关文章

                  最新文章

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

                      <legend id='BXpPk'><style id='BXpPk'><dir id='BXpPk'><q id='BXpPk'></q></dir></style></legend>

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