我想编写一个创建“Vector”(模板)的函数,在其中存储几个值,然后返回该向量。我正在定义“main”下面的函数,所以我正在使用原型:
Vector<double> VectorMouseClick;
这是正确的原型吗?
在“主要”之后,我正在定义这个功能,我试图这样做但不确定这是否是正确的方法:
Vector<double> VectorMouseClick()
{
Vector<double> vector();
...some code manipulating values and storing them in "vector"...
return vector;
}
如果函数返回我指定的类(又名Vector),我该如何编写原型?既然它是模板类,我会像上面那样做: 矢量VectorMouseClick; 或者是: 矢量VectorMouseClick; (就像其他原型一样(int ReturnValues,void SomeFunct等)
什么时候我可以在原型上使用“void”?这仅适用于不“返回”值的函数吗?我在这里看了解答案,但由于我是C ++的新手,其中一些有点难以理解。任何帮助将不胜感激!
答案 0 :(得分:2)
这是正确的原型吗?
不,你需要括号来表明它是一个函数(空,因为函数没有参数):
Vector<double> VectorMouseClick();
如果没有括号,则表示变量,而不是函数。
如果函数返回我指定的类(又名Vector),我该如何编写原型?
一般来说,函数声明总是return_type function_name(arguments);
(可能还有一些额外的部分)。类是一个类型,因此只需将其名称作为返回类型。类模板不是类(或类型),因此您需要提供模板参数以使其成为类。
什么时候我可以在原型上使用“void”?这仅适用于不“返回”值的函数吗?
这是完全正确的。 void
用于你必须提供类型的地方,但没有任何类型可以提供;在函数返回类型的情况下,它表示没有返回任何内容。
答案 1 :(得分:1)
不,不是。一般来说:
T t;
声明一个名为t的类型为T的变量。
T t();
T t(void);
与声明一个不带参数的函数,返回T并命名为t。
的方法相同使用一个或另一个只是一个样式问题,因为在C中,空白是必要的,而在C ++中则不是。如果不返回任何值,则函数的返回类型为void
。