接受整数或字符串的方法。 C ++

时间:2017-12-08 16:43:07

标签: c++ methods integer

所以现在我正在尝试制作一个图形C头文件,可以在C ++中创建三角形,方框和圆形等形状。它本来应该帮助我班上的孩子,但我也想让他们在形状中输入东西。但我想知道是否有一个整数的占位符,以防你不要cout<<一个int。

例如

方法(调用):

 //goes to coordinates 5,6 (creates side of 5 with a char called 'X')
 triangle(5,6,5,'X',"",5);

将制作一个三边形为5个X单位的三角形并具有常规基底。但是,如果用户只想打印出没有整数的字符串呢?然后他们会输入

triangle(5,6,5,'X',"I love code", );

但是会弹出一个错误并说它需要一个参数。

我已经对布尔方法进行了一些搜索,比如在java中输入

public static void randommethod bool(/*params*\){

  /*Enter code if its either true or false*/

}   

但是,如果想在C ++中找到类似的方法,那我就空了。

3 个答案:

答案 0 :(得分:0)

正如其他人所说,你可以实现函数重载来实现你想要的行为。看看C++ Overloading就可以完全理解了。这是一个简短的例子。

#include <iostream>
#include <string>

class Shapes
{
    public:

        void triangle(int x,
                      int y,
                      int z,
                      char unit,
                      std::string & text,
                      int optional)
        {
            std::cout << "triangle with optional parameters" << std::endl;
        }

        void triangle(int x,
                      int y,
                      int z,
                      char unit,
                      std::string & text)
        {
            std::cout << "triangle with minimal parameters" << std::endl;
        }
};

答案 1 :(得分:0)

我不确定每个参数在你的函数中对应的是什么,但是如果你想让最后一个参数是可选的,那么你需要明确地使它成为一个可选参数。创建函数定义/原型时,只需为可选参数指定默认值即可。如果未提供任何值,则使用默认值。

例如,如果我有绘制三角形的函数,我可以写:

public void triangle(int base, int side1, int side2=1)
{
    ....
}

side2变量是可选的。如果未提供任何值,则1成为该值。您可以为可选变量赋予函数将检测的某种无意义值,并相应地执行操作。只需确保可选参数在参数列表中位于最后,否则会出错。

希望这有帮助。

答案 2 :(得分:0)

根据标题判断,您可能希望能够传递int或字符串,这些字符串将作为消息打印。您可以将三角函数模板化为接受任何内容:

#include <iostream>

template <typename T>
void triangle(int x, int y, int z, char c, T anything)
{
    std::cout << anything << std::endl;
}

int main()
{
    triangle(5, 6, 5, 'X', "I love code");
    triangle(5, 6, 5, 'X', 5);

    return 0;
}

将打印:

I love code
5