这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.
与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误和促进糟糕的编程风格.
请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 在 C++聊天室讨论您的添加后.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.
*注意:常见问题和其他资源可以在C++标签信息和c ++ - faq中找到.
我是c ++的首发,我正在尝试开发一个简单的OpenGL应用程序.看一下互联网上的一些代码,我发现了这个:
::glutDisplayFunc(myPixmap::drawCallback);
Run Code Online (Sandbox Code Playgroud)
忽略函数本身,我只是想知道那行代码的作用.它叫这个功能吗?我知道这可能是一个愚蠢的问题,但我找不到答案
我一直在iPhone上学习核心音频,在浏览Apple的示例代码时,我发现了这个:
#include "AQPlayer.h"
void AQPlayer::AQBufferCallback(void * inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inCompleteAQBuffer)
{
AQPlayer *THIS = (AQPlayer *)inUserData;
if (THIS->mIsDone) return;
UInt32 numBytes;
UInt32 nPackets = THIS->GetNumPacketsToRead();
OSStatus result = AudioFileReadPackets(THIS->GetAudioFileID(), false, &numBytes, inCompleteAQBuffer->mPacketDescriptions, THIS->GetCurrentPacket(), &nPackets,
inCompleteAQBuffer->mAudioData);
if (result)
printf("AudioFileReadPackets failed: %d", result);
if (nPackets > 0) {
inCompleteAQBuffer->mAudioDataByteSize = numBytes;
inCompleteAQBuffer->mPacketDescriptionCount = nPackets;
AudioQueueEnqueueBuffer(inAQ, inCompleteAQBuffer, 0, NULL);
THIS->mCurrentPacket = (THIS->GetCurrentPacket() + nPackets);
}
else
{
if (THIS->IsLooping())
{
THIS->mCurrentPacket = 0;
AQBufferCallback(inUserData, inAQ, inCompleteAQBuffer);
}
else
{
// stop
THIS->mIsDone …Run Code Online (Sandbox Code Playgroud) 在完成标准c ++教程后,我正在尝试做一些hello world的东西.我尝试做的第一件事是直接在没有窗口的屏幕上绘图.我找到了这个并且它有效.
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HDC screenDC = ::GetDC(0);
::Rectangle(screenDC, 200, 200, 300, 300);
int exit; cin >> exit;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是在标准的c ++教程中没有任何地方可以涵盖这样的事情
HDC screenDC = ::GetDC(0);
::Rectangle(screenDC, 800, 200, 300, 300);
Run Code Online (Sandbox Code Playgroud)
什么是Rectangle成员?
如果你不介意我还有其他一些可能很简单的问题.如果不是不担心.
一旦我的矩形有一个窗口移过它,它就会消失.有没有回电让我知道这个,所以我可以重新粉刷?
如何更改矩形的颜色?
我在哪里可以了解这一点?我发现的每个教程都很少,而且大多数都已经过时了.如果那是我需要做的,我可以得到一本书.尝试了以下(有时成功,有时不成功):
http://msdn.microsoft.com/en-us/library/vstudio/bb384843.aspx
http://msdn.microsoft.com/en-us/library/ms533895(v=vs.85).aspx