父级指针的副本,而不在子项中复制副本
Copy of Parent's pointer without copy in Child
大家好,这是我的第一个主题。我在c++中遇到了以下情况:
class A;
class Child;
class Parent;
class A
{
public:
Parent *_p;
A() {}
};
class Parent
{
public:
void add(A &a) { a._p = this; }
Parent() {}
};
class Child : public Parent
{
public:
A a;
Child() : Parent() { add(a); }
};
main很简单:
int main(int argc, char *argv[ ])
{
Child c1,c2;
c2=c1;
return 0;
}
目前c2.a._p
与c1.a._p
有相同的地址(我做了一个拷贝)。我想修改A和/或Parent,以便用正确的父指针更新_p
。我不能改变孩子,这是我问题的强烈局限性。
任何想法?这可能吗?
当您做c2=c1
时,很明显c2.a._p
具有与c1.a._p
相同的地址。基本上你说c2应该是c1!
Update:给出你的评论,那么你应该这样做。这是一个有点丑,但我仍然没有什么你试图实现和为什么类子不能修改的全貌。这是一段伪c++代码
Parent c1;
Child c2, ....;
c2.a._p = &c1;
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 为什么 std::string s = "123" 当不涉及副本时被视为复制初始化?
- 如何避免将数据缓冲区的额外副本复制到字符串?
- Qt C++ 如何将哈希的副本复制到地图
- C 标准:通过复制返回以初始化无RVO的参考:是否有任何副本
- 复制构造函数生成旧数组的错误副本
- 复制构造函数和运算符"="他们没有打印列表 l 的副本
- 复制指针,在不更改原始指针的情况下更改副本指向的内容?
- 在派生类之间复制共享变量(浅副本就足够了)
- 从GPU到CPU的副本比将CPU复制到GPU慢
- 复制构造函数不起作用,无法修改副本
- 使用函数中的复制构造函数创建实例的副本,该函数获取作为基对象传递的实例
- 无法访问类 sf::不可复制中的私有成员.副本在哪里?C++
- 如何复制文件,但触摸新副本上的时间戳
- 是否可以使用数组副本复制矢量的一部分
- 如果引发的异常始终是异常对象的副本,为什么不调用此复制构造函数?
- 复制/修改STL容器的副本是线程安全的
- 使复制的成员引用变量引用副本的成员,而不是原始成员的成员
- 父级指针的副本,而不在子项中复制副本