所以现在我正在尝试制作一个图形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 ++中找到类似的方法,那我就空了。
答案 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