在使用某些类库的时候,有时传引用,有时传指针,这有什么设计原则吗?
QNetworkReply *post(const QNetworkRequest &request, QIODevice *data);
QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data);
一个 data 传指针,一个传引用。
另外,我发现一个有趣现象,就是使用栈上的变量,最好传引用,传指针可能会导致运行出错。
比如像这样:
QIODevice dev;
… //dev 操作
auto reply = manager->post(request, &dev); //栈上的 dev 会出现段错误,而如果是 new QIODevice 再传指针就没事。
而这种情况,直接用栈上的变量却又没事。
QByteArray data;
… //data 操作
auto reply = manager->post(request, data); //一切正常