auto-ptr

    2热度

    3回答

    我想声明中使用的“安全” push()功能与auto_ptr这样的: template<class StackType,typename T> inline void push(StackType &s, auto_ptr<T> p) { s.push(p.get()); p.release(); } 我也希望它为空指针工作,例如: push(my_stack, 0);

    3热度

    4回答

    对于下面的C++代码,我得到一个编译器错误: class Mkt { int k; public: Mkt(int n): k(n) { throw; } ~Mkt() { cout<<"\n\nINSIDE Mkt DTOR function:\t"<<endl; } void func1

    3热度

    2回答

    说我有一个模板类 template<class T> class A; template<> class A<int> { public: void print(){ std::cout << "I am an int !" << std::endl; } }; template<> class A<double> { public:

    2热度

    6回答

    我跑这个程序,但我没有得到这个auto_ptr做什么,并在哪些基础知识显示值? int main(int argc,char **argv) { int *i= new int; auto_ptr<int> x(i); auto_ptr<int>y; y=x; count <<x.get()<<endl; count <<y.get()

    6热度

    4回答

    我了解到STL可以禁止程序员将auto_ptr放入容器中。例如下面的代码不会编译: auto_ptr<int> a(new int(10)); vector<auto_ptr<int> > v; v.push_back(a); auto_ptr有复制构造函数,为什么这个代码甚至可以编译?

    0热度

    2回答

    请帮我理解下面的问题。 看一下下面的代码示例: #include <iostream> class Shape { public: virtual wchar_t *GetName() { return L"Shape"; } }; class Circle: public Shape { public: wchar_t *GetName() { return L"

    2热度

    1回答

    我有一个抽象基类,它定义了数据接口的接口。数据汇的具体实现是通过工厂获取的。为了整理代码,我为factory方法创建了一个typedef,它从DataSink抽象基类中返回新的DataSink对象。 #include <memory> #include <string> class DataSink { public: DataSink() { } v

    1热度

    5回答

    这个问题阅读本教程后,提出了一个例子: http://www.cprogramming.com/tutorial/auto_ptr.html 那里你可以找到下面的语句:此行为的一个微妙的后果是,汽车 _ ptrs在所有情况下都无法正常工作。例如,将ptr对象与标准模板库一起使用可能会导致问题,因为STL中的某些函数可能会复制容器中的对象(如vector容器类)。一个例子是sort函数,它使得容器中

    4热度

    2回答

    我正在阅读关于共享指针的一些说明。 他们说,通过STL的第一次尝试与auto_ptr的有以下主要缺点: 他们不能在STL容器中使用 复制auto_ptr的所有权转移 有效地传递一个auto_ptr的功能使它成为水槽 我明白前两项,但我不确定最后一项的含义。 有人可以请解释这一点。 谢谢。

    4热度

    3回答

    我的一些同事喜欢在构造函数初始化列表中明确地初始化std::auto_ptr到0,但是它的构造函数中将被初始化为0而不需要任何显式的初始化。那么是否有任何理由去做? #include <memory> class A { A() : SomePtr(0) { } private: std::auto_ptr<SomeType> SomePtr;