"t"在复制构造函数中表示什么?
what does ' t ' denote in copy constructor?
#include <iostream>
using namespace std;
class tester {
public:
int a;
tester( int x ) {
a = x;
}
tester( tester &t ) {
cout << t.a;
}
};
int main() {
tester t(10);
tester t_1(t);
}
output : 10
在复制构造函数的定义中,t
指的是什么?当我在t_1
的参数中传递t
时,它的地址在复制构造函数中以&t
的形式存储。t.a
是什么意思
这是对现有对象的引用,该对象正在被复制以构造新对象。复制构造函数应该根据需要从t
中读取相关字段。
在您的示例中,您可能希望像这样复制a
字段:
tester( tester &t ) {
cout << t.a;
a = t.a;
}
在复制构造函数中,t
是对tester
类型对象的引用。
复制构造函数是复制函数。它创建一个类的对象的副本,所以它接受那个类的对象作为参数。调用这个复制构造函数是为了在函数调用等过程中按值调用对象时创建对象的临时副本。
为什么这个参数是由Reference传递的?
在复制构造函数中作为引用传递参数的原因是为了避免在按值传递时递归调用复制构造函数。(因为复制构造函数本身就是创建临时对象的函数)
t.a
是什么意思
因为t
是对tester
类型对象的引用。t.a
是传递给复制构造函数的对象t
的tester
类中的成员a
。
相关文章:
- 函数名称表示什么等等
- 什么是表示?
- 什么"!<number> 在 C/C++ 中表示
- 指针符号在参数规范中表示什么,例如:(char16 *缓冲区,int32 大小)?C++
- 对于eigen sparsematrix,InnerIndExptr()和exout indExptr()准确表示什么
- C 中的运算符(::类型*)0表示什么意思
- GCC ARM 交叉编译,像未定义的引用"__cxa_end_catch@CXXABI_1.3"这样的错误表示什么?
- 0x0040和管道符号在这里表示什么
- GTIFWriteKeys和GTIFKeySet libgeotiff函数(C++)的返回值表示什么
- 移植将 32 位浮点数与使用 64 位进行比较的代码,此值表示什么
- 优先级队列自定义比较器的返回值表示什么
- 这个引用符号表示什么
- 在函数声明中,传递固定大小的数组表示什么
- 这个语句表示什么[func ptr]
- 函数括号后面的 -> 表示法表示什么?
- Very Sleepy分析器中花括号附近的时间测量值表示什么?
- "t"在复制构造函数中表示什么?
- findHomography返回的mask参数的值表示什么?
- 方括号内的c++操作符表示什么?
- 每个AuthzInitializeContextFromSid的错误110表示什么? "While trying to retrieve the authorization groups, an er