这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.
与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误和促进糟糕的编程风格.
请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 在 C++聊天室讨论您的添加后.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.
*注意:常见问题和其他资源可以在C++标签信息和c ++ - faq中找到.
这是一个简单的C++类:
class A
{
public:
explicit A() : m_a(0) { }
explicit A(int a) m_a(a) { }
int getA() const { return m_a; }
void setA(int a) { m_a = a; }
private:
int m_a;
}
Run Code Online (Sandbox Code Playgroud)
这是我目前所知道的:
sizeof(A) = sizeof(int) = sizeof(m_a)这是我不知道的:
成员函数存储在哪里以及它们实际存储的方式?假设int例如存储在4个字节上; 我可以想象RAM内存布局有4个连续的单元格,每个单元格存储一部分int.我怎么能想象一个函数的这个布局?(这听起来很傻,但我想函数必须在内存中占有一席之地,因为你可以指向它们的指针).还存储了功能指令的方式和位置?我的第一个看法是函数和函数指令存储在程序可执行文件(及其动态或静态库)中,但如果这是真的,那么在创建函数指针时会发生什么?AFAIK函数指针指向RAM内存中的位置,它们是否可以指向程序二进制文件中的位置?如果是,这是如何工作的?
任何人都可以向我解释这是如何工作的,并指出我所知道的是对还是错?
很长一段时间我一直在使用javascript,其中this关键字是必需的.现在,我用c ++编程,但习惯使用this关键字仍然存在.但真正的问题是 - 使用this关键字是否会对性能产生负面影响(如不必要的内存访问)?我的意思是 - 代码省略this了对编译器更友好的优化,或者它完全无关紧要?因为理论上严格来说,指的this是指代指针,就像opcode $reg0, [$reg1]汇编程序一样,它可以在代码中添加一个更多的内存引用,但我想它应该由编译器以比典型指针更聪明的方式处理,我是对的吗?
我个人更喜欢使用,this因为我感觉有点迷失代码而不使用它,因为我不知道某些变量是成员还是本地或全局或什么,但如果它导致性能问题我可能强迫自己避免它.