小编ria*_*mat的帖子

有人可以解释如果在堆上分配对象数组的过程中抛出异常会发生什么?

我定义了一个类foo如下:

class foo {
private:
   static int objcnt;
public:
   foo() {
       if(objcnt==8)
           throw outOfMemory("No more space!");
       else
          objcnt++;
   }

   class outOfMemory {
   public:
       outOfMemory(char* msg) { cout << msg << endl;}
   };

   ~foo() { cout << "Deleting foo." << endl; objcnt--;}
};
int foo::objcnt = 0;
Run Code Online (Sandbox Code Playgroud)

这是主要功能:

int main() {
    try {
            foo* p = new foo[3];
            cout << "p in try " << p << endl;
            foo* q = new foo[7];
        }catch(foo::outOfMemory& o) {
           cout << "Out-of-memory Exception Caught." …
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling exception new-operator

3
推荐指数
2
解决办法
1243
查看次数

如何在 LISP 中将算术运算符作为函数参数传递?

例如,我想定义一个这样的函数:

(defun operation (op)
  (op 3 7))
Run Code Online (Sandbox Code Playgroud)

但是 lisp 编译器会抱怨这样的代码: (operation +)

有没有办法将算术运算符作为函数参数传递?

lisp common-lisp

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