![]() |
1
20
如果你想让类型为null,那么就把它变成一个指针。传递字符串指针而不是引用,因为这正是指针可以做的,而引用不能做的。引用总是指向同一个有效对象。指针可以设置为null,也可以重新设置为指向另一个对象。因此,如果你需要指针可以做的事情,就使用指针。 或者,使用boost::optional,它允许一种更类型安全的方式指定“此变量可能包含也可能不包含值”。 或者,当然,更改语义,这样你就可以使用空字符串而不是null,传递一个单独的bool参数来指定字符串是否可用,或者重构,这样你一开始就不需要这个。 |
![]() |
2
11
功能超载救援。..
这将同时接受c样式的char数组和std::string,如果你传入一个字符串文字或char数组,将在堆栈上产生额外的开销,但允许你将实现保持在一个地方并保持良好的语法。 |
![]() |
3
10
就我个人而言,我会改变语义,传递空的std::string而不是NULL:
|
![]() |
4
3
或者,将前面的两个答案混合在一起:
相同的接口,堆栈上没有副本。如果你愿意,你也可以使用内联fooImpl。 |
![]() |
5
2
为什么不重载该函数,并且不给第二个重载任何参数?然后,这两个重载都可以在内部调用一个提供读取逻辑的函数,该函数本身会传递一个指针给
|
![]() |
6
2
绝对不能继承自
|
![]() |
7
1
如果你只是使用:
是的,这确实会产生额外的分配和复制,调用该函数有点冗长,因为您需要使用
|
![]() |
saber · MySql查询没有结果 3 年前 |
![]() |
pigfox · Mysql空表联接失败 7 年前 |
![]() |
Jaa Zaib · 返回空值的大小写表达式 7 年前 |
![]() |
Robert Vogelezang · 为什么null未写入输出窗口? 7 年前 |
![]() |
l. schwarz · sql长度(null) 7 年前 |
![]() |
ÇAÄrı Keskin · SQL-删除(消除)没有数据的列 7 年前 |
|
Dorkymon · 使用系统在输出处获取null。出来打印F 7 年前 |