学生与学生之间的区别a,学生& a;

时间:2016-01-14 10:12:06

标签: c++ oop constructor copy-constructor default-constructor

我对这些术语感到困惑。

假设我们有一类学生,那么

的含义是什么
class Student{
   public:
     Student(const Student& a){ ... }
     Student(const Student &a){ ... }
};

我想问下列术语的含义

Student& a;
Student &a;

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

2 个答案:

答案 0 :(得分:1)

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;

或多或少都是一样的。

关于复制构造函数检查的目的是什么:

答案 1 :(得分:0)

当我开始学习C时,我对指针语法感到困惑。 char* c;char * c;char *c;似乎与我不同,我对C中的这么多类型感到害怕。

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

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