Tag: effective c ++

为什么argc不是一个常量?

int main( const int argc , const char[] const argv) 由于有效的C ++项目#3陈述“尽可能使用const”,我开始思考“为什么不使这些'常量'参数const ”?。 在程序中是否有任何argc的值被修改的场景?

有效的C ++仍然有效?

从我在这篇文章中看到的,我决定开始阅读有效的C ++的书。 但是现在由于C ++ 11有许多新function,并且有一些好的做法改变了,所以我不确定这是否是一个好主意。 C ++ 11的出现是否反对Effective C ++中包含的任何build议? 如果是的话,我应该避免哪些话题?

有效的C ++项目23首选成员函数的非成员非友元函数

对于课堂devise中的一些事实,特别是function是否应该是成员,我考虑了一下Effective c ++,find了第23项,即非成员非好友函数。 用Web浏览器的例子第一手的阅读是有道理的,然而在这个例子中,便利的function(在这本书中命名为非成员函数)改变了这个类的状态,不是吗? 所以,第一个问题,他们不应该是成员吗? 进一步阅读,他认为STL函数,实际上一些类没有实现的函数都是在stl中实现的。 按照本书的思想,它们演变成一些便利的function,它们被压缩到一些合理的命名空间中,比如std::sort , std::copy from algorithm 。 例如, vector类没有sort函数,而使用stl sort函数,所以不是vector类的成员。 但是也可以将相同的推理延伸到vector类中的其他一些函数,比如assign这样也可以不作为成员实现,而是作为一个便利函数。 但是,这也会改变对象的内部状态,就像它所操作的那样。 那么这个微妙但重要的(我猜)问题背后的理由是什么? 如果你有机会获得这本书,你能否为我澄清这些问题?