Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一个函数中传入多个相同类型的变量_Java_C++ - Fatal编程技术网

Java 在一个函数中传入多个相同类型的变量

Java 在一个函数中传入多个相同类型的变量,java,c++,Java,C++,在某些语言中,我们可以声明多个相同类型的变量,如下所示: int a,b,c,d; 但是,是否可以以相同的方式将它们传递到函数/方法中?例如在C++ template<class ItemType> void add6(ItemType one,two,three,four,five,six){ //some very interesting code } 我一次声明所有四个变量,主要是因为键入时比执行此操作更快: int a; int b; int c; int d; 我

在某些语言中,我们可以声明多个相同类型的变量,如下所示:

int a,b,c,d;
但是,是否可以以相同的方式将它们传递到函数/方法中?例如在C++

template<class ItemType>
void add6(ItemType one,two,three,four,five,six){
  //some very interesting code
}
我一次声明所有四个变量,主要是因为键入时比执行此操作更快:

int a;
int b;
int c;
int d;
我试图理解的是,如果相同的概念也适用于函数签名。 做某事

void func(int a,b,c,d){
  //some interesting code
}
而不是

void func(int a, int b, int c, int d){
  //some interesting code
}

再次感谢

我认为您希望向方法发送多个参数

您可以在Java中使用

范例

public static void print( Object... values){
   for(Object c : values){
      System.out.println(c);
   }
}

print("string1","string2",1,2,3,4,5);
=================

在C中使用++

#包括
#包括
无效输出(){

STD::CUT

使用可变长度参数列表语法(参见@ HungVo的答案),可以在java和C++中声明一个未指定的相同类型的尾随参数。 但是,对于参数列表前面单独命名的参数,必须将类型与每个参数名一起写入

但是,其他一些语言,如Pascal和Ada,确实提供了参数列表语法,允许您声明同一类型的多个连续参数,而不必重复类型名称。例如,在Pascal中,您可以定义一个过程
aProc
,它接受
INTEGER
INTEGE>类型的参数R
整数
实数
(按该顺序)具有:

Ada的等效值几乎相同:

PROCEDURE aProc (a, b, c: INTEGER; x: FLOAT) IS
BEGIN
    ...
END aProc;
但在Java(或C++)中,您必须编写:

void aProc(int a, int b, int c, float x)
{
    ...
}
您可以使用:

然后你可以用以下方式来称呼它:

varargs(new Object(), new Object());
vararg不限制要放入参数的对象数

Java将自动将所有传递的对象存储到一个数组中,因此您可以将vararg视为一个数组,例如,您可以迭代vararg(数组)中的每个元素

可以将数组放在VARARG中,但确保数组的类型与VARARG的类型相同。如果将数组放在对象VARARG中,数组的类型不是对象,则java可以将数组视为单个元素而不是数组元素。
public static boolean test(Object ... args) {
    for (Object object : args) {
        if (object.getClass().isArray()) {
            return true;
        }
    }
    return false;
}
public static void main(String[] args) {
    System.out.println(test(new int[] {1, 2})); 
//Prints true
}

问题是,这个java是这个词还是这个C++的?很明显地暗示了OP对这两个语言都感兴趣,也可能在其他语言中感兴趣。对于C++,请看一看谢谢,这真的是信息丰富的。我重读我的问题,注意到我在问什么,我不清楚,我已经编辑了它。lly回答了这个问题。还有老式的c语法(只适用于c而不是c++)。天哪,@Oleg!这肯定会让我回到“美好的过去”!
void aProc(int a, int b, int c, float x)
{
    ...
}
public void varargs(Object ... args)
varargs(new Object(), new Object());
public static boolean test(Object ... args) {
    for (Object object : args) {
        if (object.getClass().isArray()) {
            return true;
        }
    }
    return false;
}
public static void main(String[] args) {
    System.out.println(test(new int[] {1, 2})); 
//Prints true
}