在向量中访问类的私有成员并将其作为字符串返回

时间:2014-10-15 05:50:04

标签: c++ class vector member

我正在尝试创建一个整数向量,然后通过一个函数将其写出来,该函数将打印具有一定宽度的值。

假设vector填充了{1,2,3,4}且限制宽度为4,则输出为:     1 2     2 4

使用turntostring将数据类型转换为字符串并返回int,我能够将int转换为字符串并在我打印矢量的函数中获取其大小。

turntostring(r.at(i)).size();

所以在i = 2,我有int = 4,返回值以上的代码为1

直到我必须对类的向量执行相同操作并且因为我尝试访问此类中的元素时,我无法使用上面的相同代码行。

我尝试为类编写一个print函数并编写它以获得相同的结果:

r.at(i).print().size();

打印将获取该类并返回一个字符串。

但我需要使用相同的代码行来访问元素的大小作为要求。这意味着同一行代码必须适用于类型为int的vector和具有int类型成员的类vector,例如:

class fake
{
    int num;
}

vector<int> r;
vector<fake> k;

我应该能够访问这两个向量中的每个元素并使用.size()然后对它们使用turnintostring

如果有一些我不知道的方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果你已经有string turntostring(int),那么你只需要一个演员:

class fake
{
    int num;
public:
    operator int();
}
fake::operator int() {return num;}

turntostring(some_fake);
turntostring(3);