我正在尝试为this.http.get('https://us-central1-rosebud-9b0ed.cloudfunctions.net/getUserByEmail', {
search: "user@email.com"
}).subscribe(data => {
console.log('data', data);
})
类编写一个复制构造函数,以便它打印Shape
名称的地址。
这是我的代码:
s2
答案 0 :(得分:0)
当您为name
创建字符串指针成员s1
时,您只是在调用复制构造函数时将其复制到s2
,这只是预期的它显示与s1
相同的地址的行为 - 它只是复制指针。
如果你想为每个形状提供一个唯一的名称,只需创建一个静态方法/自由函数来创建一个新名称,并在构造函数和复制构造函数中调用它,为每个新实例赋予一个唯一的名称。
对于它的价值,在这里使用new
运算符并不常见(你来自Java背景吗?) - 你可能只想使用常规std::string
,在这种情况下,你不必自己进行内存管理(你的代码现在基本上都有内存泄漏,因为你不能在任何地方调用delete
来释放通过{{1分配的内存}})。
答案 1 :(得分:0)
你可以试试下面的代码吗?
//Copy constructor
Shape(Shape& source) {
cout << "Copy constructor called" << endl;
name = new string[name];
*name = *source.name;
}