我记得首先在STL中学习矢量,经过一段时间后,我想在我的一个项目中使用bool矢量.在看到一些奇怪的行为并做了一些研究之后,我了解到一个bool矢量并不是真正的bool矢量.
在C++中还有其他常见的陷阱需要避免吗?
是否有任何类似于Parashift C++ FAQ lite的Java FAQ?
(像Effective Java这样的书很方便,但我正在寻找一个全面的在线(高级)Java常见问题解答,我可以使用)
我正在尝试通过一些网络教程学习C++.我没有可用的编译器,否则我会尝试这个.我不确定const指针是什么意思.这只是意味着它总是指向相同的内存地址吗?你为什么要这样做?以下代码是否合法?
...
int * const aPointer = new int;
... //do something with aPointer
delete aPointer;
... //do something else, including possibly more 'new' statements
aPointer = new int;
...
Run Code Online (Sandbox Code Playgroud) 感谢所有的回复.
我重新格式化了我的问题,以便在包含类的构造函数抛出异常之后理解成员指针的状态
我的示例类:)
class Foo
{
public:
Foo()
{
int error = 0;
p = new Fred;
throw error; // Force throw , trying to understand what will happen to p
}
~Foo()
{
if (p)
{
delete p;
p = 0;
}
}
private:
Fred* p;
};
int main()
{
try
{
Foo* lptr = new Foo;
}
catch (...)
{}
}
Run Code Online (Sandbox Code Playgroud)
类foo的consturctor会因某些随机原因而抛出异常.我知道foo的desturctor永远不会被调用,但在这种情况下,p的析构函数会被调用吗?
将p作为增强智能指针而不是指向fred的原始指针有什么不同.
谢谢.