小编use*_*658的帖子

模板默认参数

如果我被允许做以下事情:

template <typename T = int>
class Foo{
};
Run Code Online (Sandbox Code Playgroud)

为什么我不允许在主要方面做以下事情?

Foo me;
Run Code Online (Sandbox Code Playgroud)

但我必须指明以下内容:

Foo<int> me;
Run Code Online (Sandbox Code Playgroud)

C++ 11引入了默认模板参数,现在它们对我完全理解是难以理解的.

c++ templates

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

无法访问的文件和File.list()

在我的文件系统中搜索文件时,我的程序抛出了空指针异常,因为File.list()无法访问我的文件系统上的"Documents And Settings"并尝试解析String [] myArray = File.list() myArray为null抛出了异常.

如何检查文件或文件夹是否无法使用文件访问并保持不发生?

java file

3
推荐指数
1
解决办法
4440
查看次数

使用std :: unique_ptr的双链表

有人建议实施吗?前几天我在家里试过这个,发现移动语义太难建立先前的链接或简单的链表.使用std :: unique_ptr创建树很容易.当然,由于复制/分配,std :: shared_ptr可以轻松实现这个问题.那怎么样?

c++ unique-ptr doubly-linked-list

3
推荐指数
1
解决办法
1621
查看次数

返回一个数组......而不是一个引用或指向数组的指针

我有点困惑.有两种方法可以从方法返回数组.第一个建议如下:

typedef int arrT[10];
arrT *func(int i);
Run Code Online (Sandbox Code Playgroud)

但是,如何捕获返回的int(*)[]?

另一种方法是通过引用或指针:

int (*func(int i)[10];
Run Code Online (Sandbox Code Playgroud)

要么

int (&func(int i)[10];
Run Code Online (Sandbox Code Playgroud)

返回类型是int(*)[]或int(&)[].

我遇到的麻烦是如何分配一个变量来接受这个点,我继续得到如下错误:

can't convert int* to int (*)[]
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么或者我的知识缺乏什么?

c++ arrays return

2
推荐指数
1
解决办法
1508
查看次数

unique_ptr,移动构造函数,以及为什么总是尝试访问私有成员

我经常遇到这个问题,我相信移动构造函数是有序的,但我认为复制构造函数是问题,隐藏它似乎不起作用.

代码:

template <class T>
class LinkedList{
public:
    //
    LinkedList() {}
    LinkedList(const T &data);
    LinkedList(const T &data, const LinkedList &node);
    LinkedList(const LinkedList &object);
    LinkedList &operator=(const LinkedList &object);

    ~LinkedList() {}

    std::shared_ptr<LinkedList> push_back(const T& data);

private:
    T data;
    std::unique_ptr<LinkedList> link;

    std::unique_ptr<LinkedList> LinkFactory(const LinkedList &node);

    std::shared_ptr<LinkedList> CreateStartNode(const T &data);
    std::shared_ptr<LinkedList> CreateNode(const T &data, const LinkedList &node);
};
Run Code Online (Sandbox Code Playgroud)

发生错误的特定行是:

LinkedList<T>::LinkedList(const LinkedList<T> &object) : data(object.data),  
link(std::move(object.link)) {}
Run Code Online (Sandbox Code Playgroud)

我试图移动而不是复制复制构造函数中的链接无济于事.如果设计移动构造函数而不是合成,那会更好吗?

c++ copy-constructor unique-ptr move-constructor c++11

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

c ++ std :: exception ...我可以请更多吗?

我浏览了http://en.cppreference.com/w/cpp/error/exceptionhttp://en.cppreference.com/w/cpp/io/basic_fstream,寻找可能引发的I/O异常.我知道我可以创建一个自定义异常类,并且有很多网站提供示例代码,但我想要一些专门针对最佳实践的指导.

还有,我应该集中精力使用图书馆让我的生活更轻松吗?

c++ fstream exception-handling exception c++11

-6
推荐指数
1
解决办法
304
查看次数