相关疑难解决方法(0)

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

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

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

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

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

c++ c++-faq

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

理解指针有什么障碍,克服它们可以做些什么?

对于C或C++中的许多新的,甚至是老的大学生来说,为什么指针会成为混乱的主要因素?是否有任何工具或思维过程可以帮助您理解指针在变量,函数和更高级别的工作方式?

有什么好的做法可以让人达到"啊哈,我明白了"的水平,而不会让他们陷入整体概念的困境?基本上,钻取方案.

c c++ pointers

443
推荐指数
16
解决办法
7万
查看次数

C中的指针:何时使用&符号和星号?

我刚开始用指针,我有点困惑.我知道&一个变量的地址,它*可以在指针变量前面使用,以获取指针指向的对象的值.但是当您使用数组,字符串或使用变量的指针副本调用函数时,情况会有所不同.在所有这些内部很难看到逻辑模式.

什么时候应该使用&*

c pointers

272
推荐指数
8
解决办法
19万
查看次数

C++通过引用传递数组

这是允许通过引用传递数组?

 void foo(double& *bar) 
Run Code Online (Sandbox Code Playgroud)

似乎我的编译器说没有.为什么?通过引用传递数组的正确方法是什么?还是一个解决方法?我有一个数组参数,我的方法应该修改,然后我应该检索.或者,我可以使这个数组成为一个类成员,它工作正常,但它对我的代码的其他部分有很多缺点(我想避免).

感谢致敬.

c++ arrays pointers reference pass-by-reference

62
推荐指数
4
解决办法
13万
查看次数

没有指针的C++多态

假设我有一个基类Animal与虚函数和一些派生类(Cat,Dog等).实际派生类包含4-8个字节的数据.我想存储一个std::list<Animal>实际上包含派生对象的项目.我想避免使用new在堆上创建许多小对象.

有没有可用于实现此目的的设计模式?

编辑:我的想法来实现这一点

  1. 创建std::deque<Cat>,std::deque<Dog>...; std::list<Animal*>包含指针的商店deques; 我使用的是std::deque因为我认为它具有良好的内存管理和大量的对象;

c++

31
推荐指数
2
解决办法
2万
查看次数

参考如何在内部实施?

只是想知道它是如何在不同的编译器和调试/发布配置中实现的.标准是否以某种方式提供有关其实施的建议?它在哪里有所不同?

我试图运行一个简单的程序,我已经从函数返回非const引用和指向局部变量的指针,但它的工作方式相同.那么内部引用只是一个指针是真的吗?

c++ pointers reference

28
推荐指数
4
解决办法
9380
查看次数

指针有什么意义?

当我可以声明变量时,C++中的指针有什么意义?什么时候适合使用它们?

c++ pointers

13
推荐指数
2
解决办法
1906
查看次数

在C++中,我无法掌握指针和类

我刚从大学毕业,现在已经在C++工作了一段时间.我理解C++的所有基础知识并使用它们,但我很难掌握指针和类等更高级的主题.我已经阅读了一些书籍和教程,我理解其中的例子,但是当我看到一些高级的现实生活中的例子时,我无法弄明白.这让我很伤心,因为我觉得它让我无法将我的C++编程提升到一个新的水平.有没有人有这个问题?如果是这样,你是如何突破它的?有没有人知道任何真正描述指针和类概念的书籍或教程?或者使用高级指针和类技术的一些示例代码具有良好的描述性注释?任何帮助将不胜感激.

c++ pointers class

7
推荐指数
4
解决办法
6022
查看次数

哪种是在C++中实例化对象的正确方法?

在C++中(我使用QT)我可以用两种方式创建QString类的实例:

方法1

QString str = "my string";
Run Code Online (Sandbox Code Playgroud)

方法2

QString *str = new QString("my string");
Run Code Online (Sandbox Code Playgroud)

我知道这与指针有关.所以我的问题是:

  1. 两者有什么区别?
  2. 我应该坚持哪种方法?
  3. 什么时候使用方法1是正确的,什么时候使用方法2是正确的?
  4. 在方法2中,我可以通过调用来销毁对象delete str;.str使用方法1时如何删除变量?

谢谢

c++ qt qt4 visual-c++

6
推荐指数
2
解决办法
2825
查看次数

C++中的Arrow Member运算符

我很擅长使用C++.我以前处理过Java和ActionScript,但现在我想学习这种强大的语言.由于C++授予程序员显式使用指针的能力,因此我对使用箭头成员运算符感到困惑.这是我尝试编写的示例代码.

main.cpp中:

   #include <iostream>
   #include "Arrow.h"
   using namespace std;

   int main()
   {
        Arrow object;
        Arrow *pter = &object;

        object.printCrap(); //Using Dot Access
        pter->printCrap(); //Using Arrow Member Operator
        return 0;
   }
Run Code Online (Sandbox Code Playgroud)

Arrow.cpp

   #include <iostream>
   #include "Arrow.h"
   using namespace std;

   Arrow::Arrow()
   {

   }

   void Arrow::printCrap(){
       cout << "Steak!" << endl;
   }
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,它所做的只是使用两种方法(Dot和Arrow)打印牛排.

简而言之,在使用C++编写真正的实际应用程序时,何时使用箭头符号?由于我以前的编程经验,我习惯使用点符号,但箭头对我来说是全新的.

c++ pointers reference pass-by-reference

6
推荐指数
2
解决办法
6810
查看次数

标签 统计

c++ ×9

pointers ×7

reference ×3

c ×2

pass-by-reference ×2

arrays ×1

c++-faq ×1

class ×1

qt ×1

qt4 ×1

visual-c++ ×1