在c ++中存储类对象

时间:2012-10-18 20:32:40

标签: c++ arrays vector

有没有办法在c ++中的arrayvector中存储类对象?

我正在写一堂课来做一些基本的分数数学。

Fraction fraction_1(a,b);

有没有办法存储每一个,以便我可以在程序后面添加,减去,乘以所有分数?

理想情况下,我希望能够说List[2] + List[3](使用我的重载运算符进行分数加法)?

由于我对c ++中的矢量没有多少经验,所以我完全不知道要想办法这么做。

3 个答案:

答案 0 :(得分:2)

是的,您可以定义矢量并将元素添加到其中:

std::vector<Fraction> fv;

fv.push_back(Fraction(a, b));
fv.push_back(Fraction(a, c));
fv.push_back(Fraction(d, c));

答案 1 :(得分:1)

您可以使用与任何内置类型完全相同的方式执行此操作。即。

std::vector<int> foo;
std::vector<MyClass> bar;
std::vector<std::string> baz;

foo.push_back(1);
bar.push_back(my_class_object);
baz.push_back("hello");

foo[0] = 2;
bar[0] = my_other_object;
baz[0] = "world";

答案 2 :(得分:0)

你可能需要重载运算符+, - ,乘法和除法才能按照你想要的方式工作。

您可以将任何类型的数据存储在CONTAINER中,例如vector,因为它们是模板化的。

vector <Fraction> array;
array.push_back(Fraction(10, 20));
array.push_back(Fraction(30, 40));

array2.push_back(array[0] + array[1]);