广义参数

Mar*_*lka 0 c++

我想知道是否有可能有一个函数参数,而不关心它的类型是什么.例如,我有一个覆盖<<运算符的类.但它唯一能做的就是将param添加到私有ostringstream:

CLog& CLog::operator <<(const char * txt) {
    buffer << txt;
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

但是,这只允许我将const char写入缓冲区.我需要参数是任何类型ostringstream <<接受.那可能吗?

Log*_*orn 5

您可以使用模板:

template <typename T>
CLog& CLog::operator <<(const T& p) {
    buffer << p;
    return *this;
}
Run Code Online (Sandbox Code Playgroud)