相关疑难解决方法(0)

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

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

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

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

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

c++ c++-faq

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

const关键字在C++函数原型中意味着什么?

可能重复:
const表示函数/方法签名后的含义是什么?

我在C++的后期阅读中遇到了很多函数(特别是在Boost上),它有一个我以前从未见过的符号.例如:

virtual void B() const;
Run Code Online (Sandbox Code Playgroud)

你可以看到我们在函数名后面有一个const!我已经看到const关键字主要是关于它们在函数中使用的函数返回值(或作为参数),但是这个是不同的.任何人都可以向我解释它是什么以及为什么我们使用它?还有什么不同于常规使用const函数?

int * const Function(int *const constantPointerToAnInteger, char const* pointerToAConstantChar);
Run Code Online (Sandbox Code Playgroud)

c++ const

8
推荐指数
2
解决办法
9549
查看次数

const返回类型何时干扰模板实例化?

来自Herb Sutter的GotW#6

对于非内置返回类型,返回值通常应为const....

注意:Lakos(第618页)反对返回const值,并指出它对于内置函数来说是多余的(例如,返回"const int"),他注意到这可能会干扰模板实例化.

虽然Sutter似乎不同意在使用Lakos按值返回非构建类型的对象时是返回const值还是非const值,但他通常同意返回内置类型的const值(例如const int) )不是一个好主意.

虽然我理解为什么这是无用的,因为返回值不能被修改,因为它是一个右值,我找不到一个如何干扰模板实例化的例子.

请举例说明如何使用返回类型的const限定符可能会干扰模板实例化.

c++ templates const return-value

5
推荐指数
1
解决办法
376
查看次数

你能解释一下外在的意义和其他一些事情吗?

我知道extern C意味着函数应该用C风格编译但是extern function_datatype functionname是什么意思?

extern void sharelog(const char *rem_host, const char *username,
         const char *, const char *,
         const char *, const char *);
Run Code Online (Sandbox Code Playgroud)

没有"C"的extern是什么意思?

此外,在几乎每个程序的头文件中,我都看到了类似的东西

void sharelog(const char *rem_host, const char *username,
         const char *, const char *,
         const char *, const char *);
Run Code Online (Sandbox Code Playgroud)

如果在.c/.cpp文件中完成,为什么要再次声明该函数?它有时也会在没有它的论证的情况下宣布

int Function;
Run Code Online (Sandbox Code Playgroud)

此外,一些函数可以这样写:

int CSomething::Somefunction() const
Run Code Online (Sandbox Code Playgroud)

为什么在函数后添加const?

我也偶然发现了具有这些神秘点的功能

void function(int prio, const char *fmt, ...)
Run Code Online (Sandbox Code Playgroud)

还有很多其他的东西我也想问,但似乎我已经问过了.我知道有些人可能会说去学习C/C++,但是相信我,这些东西不是为初学者讨论的.

c c++

0
推荐指数
1
解决办法
439
查看次数

标签 统计

c++ ×4

const ×2

c ×1

c++-faq ×1

return-value ×1

templates ×1