gpt4 book ai didi

C++、std::list、赋值、继承

转载 作者:可可西里 更新时间:2023-11-01 18:15:46 27 4
gpt4 key购买 nike

class A, B;
class A {
public:
A& operator= ( const A &rhs ) { return *this; }
};
class B: public A {
public:
B& operator= ( const A &rhs ) { return *this; }
};
A a;
B b;
std::list < A > aa;
std::list < B > bb;
a = b; // works
b = a; // works
// aa = bb; // fails
// bb = aa; // fails

如何让 bb = aa 工作?

最佳答案

你在这里缺少的是即使AB是相关类型,std::list<A>std::list<B>实际上是不相关的类型(除了都说 list )。因此,您不能使用复制分配在它们之间进行分配。

但是,假设您可以分配类型 AB使用他们的赋值运算符彼此,你可以使用 listassign复制迭代器范围的方法:

aa.assign(bb.begin(), bb.end());
bb.assign(aa.begin(), aa.end());

关于C++、std::list、赋值、继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com