Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
C++ 如何将类对象作为参数传递_C++ - Fatal编程技术网

C++ 如何将类对象作为参数传递

C++ 如何将类对象作为参数传递,c++,C++,我有两个类,每个类代表一个链表 class list1 { //some functions }; class list2 { //some functions } 我的主函数有两个对象LL1和LL2,分别用于list1类和list2类 int main() { list1 LL1; list2 LL2; } 现在我想调用一个函数merge,将这两个列表合并在一起。并将列表的两个对象作为参数 class list {

我有两个类,每个类代表一个链表

class list1 {

      //some functions

};

class list2 {

      //some functions

}
我的主函数有两个对象LL1和LL2,分别用于list1类和list2类

int main()
{
     list1   LL1;
     list2   LL2;
}
现在我想调用一个函数merge,将这两个列表合并在一起。并将列表的两个对象作为参数

class list {

      //some functions

};

list merge(const list& l1, const list& l2)
{
  list mergedList;
  //logic to merge l1 and l2 and copy it to mergedList
  return mergedList;
}

int main()
{
     list   LL1;
     list   LL2;

     list mergedList = merge(LL1, LL2);
}
让我们调用函数

void merge(object list1, object list2)  
所以我可以这样称呼它在主管道内

merge(LL1, LL2);

可能吗

是,可以将对象作为参数传递

class list {

      //some functions

};

list merge(const list& l1, const list& l2)
{
  list mergedList;
  //logic to merge l1 and l2 and copy it to mergedList
  return mergedList;
}

int main()
{
     list   LL1;
     list   LL2;

     list mergedList = merge(LL1, LL2);
}

如果没有将结果合并列表的空间传递给该方法,该方法也没有返回合并列表,那么结果合并列表将在何处结束?类型
list1
或类型
list2
的合并列表是什么?忽略这个问题,如果您计划修改任何一个输入列表,您只需执行
void merge(list1&l1,list2&list2)
,如果不打算修改,则执行
void merge(const list1&l1,const list2&list2)
。但我绝对建议做一些更基本的C++教程,看起来你还没有掌握基本的力学。我正在编写一个函数来合并两个链表。相信我,我了解基本情况。谢谢你的哲学@这并不是粗鲁,但您只是问如何将对象作为方法参数传递。很明显,你没有掌握基本知识。如果你读过一篇介绍性的教程,比如你已经有了答案,为了缓和我以前的评论,C++是一个苛刻的情妇。如果在你进入更复杂的结构之前,你不花时间来确保你对语言的工作原理有一个非常扎实的掌握,它会把你咬碎,然后把你吐出来(我的意思是你会写很多非常错误的代码)。我们都去过一次,没有什么丢脸的。C++比其他语言更不宽容。这将创建传递给合并< /COD>的列表的副本,可能不是OP所打算的,尤其是因为目前无法使用<代码>合并< /COD>返回任何东西。谢谢。更新了答案。它仍然在创建不必要的副本。它们应该是引用或常量引用。我相信@aruistante的意思是列表合并(list&l1,lis&tl2)