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

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

      <tfoot id='kK1xk'></tfoot>

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

    2. 是否有可能使函数接受给定参数的多种数据类型

      时间:2023-05-24
      <i id='w8vn4'><tr id='w8vn4'><dt id='w8vn4'><q id='w8vn4'><span id='w8vn4'><b id='w8vn4'><form id='w8vn4'><ins id='w8vn4'></ins><ul id='w8vn4'></ul><sub id='w8vn4'></sub></form><legend id='w8vn4'></legend><bdo id='w8vn4'><pre id='w8vn4'><center id='w8vn4'></center></pre></bdo></b><th id='w8vn4'></th></span></q></dt></tr></i><div id='w8vn4'><tfoot id='w8vn4'></tfoot><dl id='w8vn4'><fieldset id='w8vn4'></fieldset></dl></div>

        <legend id='w8vn4'><style id='w8vn4'><dir id='w8vn4'><q id='w8vn4'></q></dir></style></legend>
          <tfoot id='w8vn4'></tfoot>

              <bdo id='w8vn4'></bdo><ul id='w8vn4'></ul>
                <tbody id='w8vn4'></tbody>

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

              1. 本文介绍了是否有可能使函数接受给定参数的多种数据类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                限时送ChatGPT账号..

                编写函数时,我必须像这样声明输入和输出数据类型:

                Writing a function I must declare input and output data types like this:

                int my_function (int argument) {}
                

                是否可以声明我的函数接受 int、bool 或 char 类型的变量,并且可以输出这些数据类型?

                Is it possible to make such a declaration that my function would accept variable of type int, bool or char, and can output these data types ?

                //non working example
                [int bool char] my_function ([int bool char] argument) {}
                

                推荐答案

                您的选择是

                备选方案 1

                您可以使用模板

                template <typename T> 
                T myfunction( T t )
                {
                    return t + t;
                }
                

                备选方案 2

                普通函数重载

                bool myfunction(bool b )
                {
                }
                
                int myfunction(int i )
                {
                }
                

                您为您期望的每个参数的每种类型提供不同的函数.您可以混合使用替代方案 1.编译器会为您选择合适的方案.

                You provide a different function for each type of each argument you expect. You can mix it Alternative 1. The compiler will the right one for you.

                替代方案 3

                你可以使用联合

                union myunion
                { 
                    int i;
                    char c;
                    bool b;
                };
                
                myunion my_function( myunion u ) 
                {
                }
                

                替代方案 4

                你可以使用多态.对于 int 、 char 、 bool 可能有点矫枉过正,但对于更复杂的类类型很有用.

                You can use polymorphism. Might be an overkill for int , char , bool but useful for more complex class types.

                class BaseType
                {
                public:
                    virtual BaseType*  myfunction() = 0;
                    virtual ~BaseType() {}
                };
                
                class IntType : public BaseType
                {
                    int X;
                    BaseType*  myfunction();
                };
                
                class BoolType  : public BaseType
                {
                    bool b;
                    BaseType*  myfunction();
                };
                
                class CharType : public BaseType
                {
                    char c;
                    BaseType*  myfunction();
                };
                
                BaseType*  myfunction(BaseType* b)
                {
                    //will do the right thing based on the type of b
                    return b->myfunction();
                }
                

                这篇关于是否有可能使函数接受给定参数的多种数据类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:C++中的静态全局变量 下一篇:C++ 全局变量声明

                相关文章

                最新文章

                • <bdo id='2aTOX'></bdo><ul id='2aTOX'></ul>
                <legend id='2aTOX'><style id='2aTOX'><dir id='2aTOX'><q id='2aTOX'></q></dir></style></legend>
              2. <tfoot id='2aTOX'></tfoot>

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

                    <small id='2aTOX'></small><noframes id='2aTOX'>