相关疑难解决方法(0)

最终C++书籍指南和列表

这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.

与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误促进糟糕的编程风格.

请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 C++聊天室讨论您的添加.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.

*注意:常见问题和其他资源可以在C++标签信息.

c++ c++-faq

4246
推荐指数
1
解决办法
224万
查看次数

类成员和成员函数的内存位置

这是一个简单的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)
  • 类A的所有成员函数都存储在内存中,而类A的所有实例都使用相同的成员函数.

这是我知道的:

成员函数存储在哪里以及它们实际存储的方式?假设int例如存储在4个字节上; 我可以想象RAM内存布局有4个连续的单元格,每个单元格存储一部分int.我怎么能想象一个函数的这个布局?(这听起来很傻,但我想函数必须在内存中占有一席之地,因为你可以指向它们的指针).还存储了功能指令的方式和位置?我的第一个看法是函数和函数指令存储在程序可执行文件(及其动态或静态库)中,但如果这是真的,那么在创建函数指针时会发生什么?AFAIK函数指针指向RAM内存中的位置,它们是否可以指向程序二进制文件中的位置?如果是,这是如何工作的?

任何人都可以向我解释这是如何工作的,并指出我所知道的是对还是错?

c++ memory pointers memory-management

4
推荐指数
1
解决办法
4272
查看次数

在c ++中使用"this"关键字对性能有影响吗?

很长一段时间我一直在使用javascript,其中this关键字是必需的.现在,我用c ++编程,但习惯使用this关键字仍然存在.但真正的问题是 - 使用this关键字是否会对性能产生负面影响(如不必要的内存访问)?我的意思是 - 代码省略this了对编译器更友好的优化,或者它完全无关紧要?因为理论上严格来说,指的this是指代指针,就像opcode $reg0, [$reg1]汇编程序一样,它可以在代码中添加一个更多的内存引用,但我想它应该由编译器以比典型指针更聪明的方式处理,我是对的吗?

我个人更喜欢使用,this因为我感觉有点迷失代码而不使用它,因为我不知道某些变量是成员还是本地或全局或什么,但如果它导致性能问题我可能强迫自己避免它.

c++ performance assembly heap-memory

-1
推荐指数
1
解决办法
340
查看次数