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

Accessing private member of class in a vector and return it as a string

本文关键字:返回 字符串 成员 向量 访问      更新时间:2023-10-16

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

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

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

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

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

这很好,直到我不得不对类的向量做同样的事情,并且当我试图访问这个类中的元素时,我无法使用上面的同一行代码。

我试着为这个类写一个打印函数,并写下它以获得相同的结果:

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

Print会占用类并返回一个字符串。

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

class fake
{
    int num;
}
vector<int> r;
vector<fake> k;

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

如果有什么方法我不知道,请告诉我。

如果您已经有string turntostring(int),那么您只需要一个cast:

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