我对这些术语感到困惑。
假设我们有一类学生,那么
的含义是什么class Student{
public:
Student(const Student& a){ ... }
Student(const Student &a){ ... }
};
我想问下列术语的含义
Student& a;
Student &a;
这些用于复制构造函数。 我知道它们主要用于深度和浅层复制构造函数。
答案 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'类型名称(例如int
,char
或甚至指针等)之间的任何位置放置星号)和变量名称。这意味着,所有这些声明都是一样的。
这也适用于C ++中的引用。实际上,它取决于开发人员的编码风格,而意义不会改变。