加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

重载<<运算符C - 指向类的指针

发布时间:2020-12-16 06:49:03 所属栏目:百科 来源:网络整理
导读:class logger { ....};logger operator(logger log,const std::string str){ cout "My Log: " str endl; return log;}logger log;log "Lexicon Starting"; 工作正常,但我想使用指向类实例的指针.即 logger * log = new log();log "Lexicon Starting"; 这可能
class logger {
 ....
};

logger& operator<<(logger& log,const std::string& str)
{
    cout << "My Log: " << str << endl;
    return log;
}

logger log;
log << "Lexicon Starting";

工作正常,但我想使用指向类实例的指针.即

logger * log = new log();
log << "Lexicon Starting";

这可能吗?如果是这样,语法是什么?谢谢

编辑:编译器错误是

error: invalid operands of types 'logger*' and 'const char [17]' to binary 'operator<<'

解决方法

您必须取消引用指向您的记录器对象的指针,并明显检查它是否为0.这样的事情应该做的工作:

log && ((*log) << "Lexicon starting")

作为一般情况下,由于你用指针获得的不确定性,我会回避引用像记录器(你通常无条件地期望存在)这样的对象,因为AKA是否存在对象?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读