继承层次结构并将元素添加到向量
Inheritance Hierarchy and adding elements to a vector
我有以下问题。我有一个带有虚函数的抽象类。
class A{
public:
virtual double GetTotalPrice() = 0;
};
派生类:
class B : public A {
A (string st, int number, double num) : x(st), y(number), z(num) { }
double GetTotalPrice() //returns a quantity
{
...
} };
派生类的派生类:
class C : public B {
C (double d, int i) : dd(d), ii(i) {}
double GetTotalPrice() //returns a quantity
{
...
} };
我的任务是创建一个带有指向 A 类实例的指针的向量,并向其添加 B 类的 3 个元素和 C 类的 3 个元素。
以下是我创建矢量的方法:
vector<A*> it;
但我不确定如何向其添加项目,尤其是 C 类。 有人可以帮我吗? 我还需要调用GetTotalPrice()
所有这些元素的虚函数。我该怎么做?
使用智能指针:
std::vector<std::unique_ptr<A>> vec;
vec.emplace_back(std::make_unique<B>("string",1,1.2));//Write B's ctor arguments
vec.emplace_back(std::make_unique<C>(1.2,1));//Write C's ctor arguments
不建议使用原始指针:
std::vector<A*> vec;
vec.emplace_back(new B("string",1,1.2));
vec.emplace_back(new C(1.2,1));
迭代向量很简单,并且对于两个变体相同:
for(auto&& e:vec)
{
double price = e->GetTotalPrice();
}
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 不允许在向量中添加更多元素
- 如何将元素添加到向量的字符串位置
- 有没有办法向这个向量添加元素?
- 这种方式是否可以接受向向量添加unique_ptr?
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- C++ 将子类的对象添加到父类的向量中
- 如何在提升间进程中构建具有给定计数的向量并向其添加元素
- 将不同类型的变量添加到向量中
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 使用 std::transform 将向量向量 (a) 添加到另一个向量向量 (b)
- 继承层次结构并将元素添加到向量
- 测试驱动开发 c++:如何将对象添加到向量中,将歌曲添加到播放列表并对其进行测试
- 如何将对象添加到类中的静态向量
- 对象如何将自身添加到对象类中的向量中?
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- C++ 如何在向量中添加向量?vector.push_back( 向量<> )?
- 如何在CUDA内核中添加向量元素
- 向 NS2 添加向量;编译器错误
- 向向量添加向量