相关疑难解决方法(0)

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

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

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

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

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

c++ c++-faq

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

在C++中进行'constify'操作是否有意义?

难道是有意义的有一个" constify"操作C/C++,使一个变量const

这是一个可能有用的示例,显然我们不想const在第一行声明它:

std::vector<int> v;
v.push_back(5);
constify v; // now it's const
Run Code Online (Sandbox Code Playgroud)

目前,没有这种可能性,你必须引入另一个变量来获得相同的效果:

std::vector<int> v0;
v0.push_back(5);
const std::vector<int>& v = v0;
Run Code Online (Sandbox Code Playgroud)

这更令人困惑,因为它在范围中添加了一个新名称,你需要使它成为一个参考,以避免复制整个向量(或使用swap?).

c++ variables language-design syntactic-sugar

6
推荐指数
4
解决办法
829
查看次数

在声明变量之后,有没有办法证实变量?

可能重复:
在声明之后是否有一些忍者技巧使变量保持不变?

有时在C或C++中我们有一个可能是const的变量,但我们必须使用一些代码行来初始化它.

有没有办法告诉编译器,从函数的某个角度来看,一些已构造的变量必须被视为const,直到它的作用域结束?

就像是:

int c = 0;
// the value of c is initialized here
switch(someVar) {
   case foo: c = 3; break;
   case bar: c = 4; break;
   default : c = 42; // what else?
}
// now c is constant
ASSUME_CONST_FROM_NOW(c) // some #pragma maybe?
Run Code Online (Sandbox Code Playgroud)

我知道我可以在专用函数中初始化变量.这不是我要求的.

另一个例子:

int c = 0; int d = 0;
{ /*some block of code that initializes both c and d jointly*/ }
ASSUME_CONST_FROM_NOW(c, d)
Run Code Online (Sandbox Code Playgroud)

没有可以在不创建结构或类的情况下一次返回两个值的函数.

但是这样一个技巧可能是有用的,以便通过不太多的重构使旧的,糟糕的代码更容易理解.

c c++ const

3
推荐指数
2
解决办法
801
查看次数

标签 统计

c++ ×3

c ×1

c++-faq ×1

const ×1

language-design ×1

syntactic-sugar ×1

variables ×1