学生和a,学生和a之间的区别;

difference between Student& a, Student &a;

本文关键字:区别 之间      更新时间:2023-10-16

我对这些术语感到困惑。

假设我们有一班学生,那么的含义是什么

class Student{
   public:
     Student(const Student& a){ ... }
     Student(const Student &a){ ... }
};

我想问以下术语的含义

Student& a;
Student &a;

这些用于复制构造函数。我所知道的是,它们主要用于深层和浅层复制构造函数。

int   i   =   5;
^^^   ~       =
Type  Name  Value
(int) (i)    (5)

int&   ref   =  i;
^^^^^  ~~~      =
Type   Name   Value
(int&) (ref)   (i)

int  & ref   =  i;
^^^^^^ ~~~      =
Type   Name   Value
(int&) (ref)   (i)

int   &ref   =  i;
^^^^^^^~~~      =
 Type  Name   Value
(int&) (ref)   (i)

所以基本上这两个:

Student& a;
Student &a;

或多或少都是一样的。

至于复制构造函数签出的目的是什么:

  • 我们什么时候必须使用复制构造函数
  • 为什么复制构造函数应该在C++中通过引用接受其参数
  • http://en.cppreference.com/w/cpp/language/copy_constructor

当我刚开始学习C时,我对指针语法感到困惑。char* c;char * c;char *c;对我来说似乎不同,我对C.中的许多类型感到恐惧

但事实证明,您可以在'main'类型名称(例如intchar,甚至指针等)和变量名称之间的任何位置放置星号。这意味着,所有这些声明都是相同的。

这也适用于C++中的引用。实际上,这取决于开发人员的编码风格,而含义不会改变。