C++中的可更改返回数据类型

Vol*_*orm 2 c++ templates

我正在编写一个矩阵类,我希望它能够存储任何不同的(数字)数据类型 - 从boolean到long.

为了访问数据我正在使用括号运算符.是否可以使该函数返回不同的数据类型,具体取决于类中存储的数据类型.更重要的是,我不完全确定如何在同一变量名下存储类中的不同数据类型.这可能是不可能的.

我认为将数据存储为任何类型的唯一方法是将其存储为void并将数据类型存储为额外变量.但是,作为一个空白返回会导致问题,不是吗?因为我想要返回作为我存储在函数中的数据类型.

谢谢.

Sev*_*yev 14

阅读模板.


Kor*_*icz 10

你的答案是模板!

template <typename T>
class Matrix {
    T* data;
public:
    // ....
    T& operator()( size_t x, size_t y )
    {
        return data[ y*MAXX + x ]; 
    }

}
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读模板.