📄 nudep.cpp
字号:
//: C23:Nudep.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// Naked pointers
#include <fstream>
#include <cstdlib>
using namespace std;
ofstream out("nudep.out");
class Cat {
public:
Cat() { out << "Cat()" << endl; }
~Cat() { out << "~Cat()" << endl; }
};
class Dog {
public:
void* operator new(size_t sz) {
out << "allocating a Dog" << endl;
throw int(47);
}
void operator delete(void* p) {
out << "deallocating a Dog" << endl;
::delete p;
}
};
class UseResources {
Cat* bp;
Dog* op;
public:
UseResources(int count = 1) {
out << "UseResources()" << endl;
bp = new Cat[count];
op = new Dog;
}
~UseResources() {
out << "~UseResources()" << endl;
delete []bp; // Array delete
delete op;
}
};
int main() {
try {
UseResources ur(3);
} catch(int) {
out << "inside handler" << endl;
}
} ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -