我对这些术语感到困惑。
假设我们有一个学生班级,那么
class Student{
public:
Student(const Student& a){ ... }
Student(const Student &a){ ... }
};我想问一下以下术语的含义
Student& a;
Student &a;这些函数用于复制构造函数。据我所知,它们主要用于深层和浅层拷贝构造函数。
发布于 2016-01-14 18:37:27
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;或多或少都是一样的。
至于复制构造函数的目的是什么,请查看:
发布于 2016-01-14 18:42:32
当我刚开始学习C语言时,我对指针语法感到困惑。char* c;、char * c;和char *c;在我看来是不同的,我被C中这么多类型吓坏了。
但事实证明,您可以在“main”类型名称(例如int、char,甚至指针等)和变量名称之间的任何位置放置一个星号。这意味着,所有这些声明都是相同的。
这也适用于C++中的引用。实际上,这取决于开发人员的编码风格,而含义并没有改变。
https://stackoverflow.com/questions/34786823
复制相似问题