这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.
与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误和促进糟糕的编程风格.
请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 在 C++聊天室讨论您的添加后.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.
*注意:常见问题和其他资源可以在C++标签信息和c ++ - faq中找到.
是否有可能在Java中编写虚拟方法,就像在C++中一样?
或者,是否有适当的Java方法可以实现,产生类似的行为?我能举一些例子吗?
首先我来自JAVA.
在java中,我们创建这样的类对象.
Example example=new Example();
Run Code Online (Sandbox Code Playgroud)
Example类可以有构造函数或者不能有构造函数.
我可以像这样使用c ++中的相同内容
Example* example=new Example();
Run Code Online (Sandbox Code Playgroud)
建设者是强制性的.
从本教程http://www.cplusplus.com/doc/tutorial/classes/
我知道我们可以创建这样的对象.
Example example;
Run Code Online (Sandbox Code Playgroud)
哪个不需要构造函数.
我有两个问题.
1)创建类对象的方式之间有什么区别.
2)如果我正在创建Example example;如何在单例类中使用它的对象.
就像我通常喜欢这样.
Sample* Singleton::get_sample() {
if (sample == NULL) {
sample = new Sample();
}
return sample;
}
Run Code Online (Sandbox Code Playgroud)
如果我错了,请指导我.
从C++/Java/C#背景开始我希望在Swift中看到虚拟方法,但是阅读swift文档我没有提到虚拟方法.
我错过了什么?
我写过 - 似乎是 - 在Java和C++中完全相同的继承示例.看到这些计划的不同产出,我感到非常惊讶.让我分享代码片段和相应的输出.
C++代码:
class A
{
public:
A() {}
void sleep() {
cout << "A.Sleep" << endl;
eat();
}
void eat() {cout << "A.Eat" << endl;}
};
class B: public A
{
public:
B() {}
void sleep() {
A::sleep();
cout << "B.Sleep " <<endl;
this->eat();
}
void eat() {
cout << "B.Eat" << endl;
run();
}
void run() {
A::sleep();
cout << "B.run" << endl;
}
};
int main()
{
B *b = new B();
b->sleep();
} …Run Code Online (Sandbox Code Playgroud) 我是C++的新手.
任何人都可以告诉我c ++中方法重写和虚函数概念之间的区别.
虚函数的功能可以在其派生类中被覆盖.在派生类中重新定义函数称为函数重写.
为什么我们实际上有虚函数?
我在C++个人学习过程中遇到了困难.我来自Java语言.
我试图在C++中设置一个具有抽象方法的类.到那里,没有什么大不了的.但是我想在Java中实例化那个类:
// MyClass has an abstract method named "AbstractMethod"
MyClass class_object = new MyClass()
{
@Override
public void AbstractMethod()
{
// Do something here
}
};
class_object.AbstractMethod();
Run Code Online (Sandbox Code Playgroud)
在Java中,它完美地运行.但是我想在C++中做同样的事情,这里有一个问题:C++似乎不喜欢实例化具有虚方法的类的想法.
我已经搜索了几天,我在互联网上找不到任何答案.也许只是我写错了搜索句子,因为我不是母语为英语的人,在问这个问题时我可能会遇到一些困难.
在C++中,我是否有可能像在Java中一样,或者至少可能?使用模板是解决方案吗?(之前从未学过模板,我还有很多需要学习的东西).
此外,我无法创建许多类来重新定义方法,因为此类将用于为每个实例执行自定义处理.我认为,创建课程只是为了让它成为这种类型中唯一一个对象的骄傲之父.
c++ ×6
java ×3
virtual ×2
binding ×1
c# ×1
c++-faq ×1
inheritance ×1
keyword ×1
overriding ×1
redefinition ×1
swift ×1