我开始学习C++,并且作为练习决定实现一个简单的LinkedList类(下面是部分代码).我有一个关于应该如何实现复制构造函数的问题以及LinkedList应该访问原始数据的最佳方式.
template <typename T>
class LinkedList {
struct Node {
T data;
Node *next;
Node(T t, Node *n) : data(t), next(n) {};
};
public:
LinkedList();
LinkedList(const LinkedList&);
~LinkedList();
//member functions
int size() const; //done
bool empty() const; //done
void append(const T&); //done
void prepend(const T&); //done
void insert(const T&, int i);
bool contains(const T&) const; //done
bool removeOne(const T&); //done
int removeAll(const T&); //done
void clear(); //done
T& last(); //done
const T& last() const; //done
T& …Run Code Online (Sandbox Code Playgroud) 这是一个关于最佳实践的问题.我有一个类似于此的PL/SQL块
DECLARE
--work variables
PROCEDURE p1(in_parameter1, out_parameter1, out_parameter2...) IS
BEGIN
--do stuff
--select ( ... ) into ( ... ) from t1 where ( ... )
END;
PROCEDURE p2(in_parameter1, out_parameter1, out_parameter2...) IS
BEGIN
--do stuff
--insert/update tables
--do more stuff
END;
BEGIN -- MAIN PROCESS STARTS HERE
open c1;
fetch c1 into c1RowData;
EXIT WHEN c1%NOTFOUND
--call procedure1
--do stuff
--call procedure2
--do stuff
--do stuff
--call procedure1
--call procedure2
END;
/
EXIT;
Run Code Online (Sandbox Code Playgroud)
过程p1和p2中的语句可能会引发异常(NO_DATA_FOUND,DUP_VAL_ON_INDEX,...).
您认为处理此异常的最佳方法是什么?它们是应该在程序内处理还是你认为我应该用TRY-CATCH块围绕每个调用主体中的程序?