我定义了一个类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) 例如,我想定义一个这样的函数:
(defun operation (op)
(op 3 7))
Run Code Online (Sandbox Code Playgroud)
但是 lisp 编译器会抱怨这样的代码: (operation +)
有没有办法将算术运算符作为函数参数传递?