schmidt%crimee.ics.uci.edu@ORION.CF.UCI.EDU ("Douglas C. Schmidt") (10/05/88)
Hi,
In the following code, the operator ``new'' has been defined in
the private section of class foo. Shouldn't this make it illegal
to use the keyword ``new'' outside of the context of the member functions
and friends? Assignment ( = ) and ``pass-by-value'' can be disallowed
by following this trick, so why not allocation as well?
Doug
here's an example:
----------------------------------------
#include <stream.h>
class foo {
private:
int j;
int k;
void * operator new(long size) {
cout << size << "\n";
return(malloc(size));
}
public:
foo(int i) {
j = k = i;
}
int Return(void) {
return(j * k);
}
};
main() {
foo Bar(1);
foo *Bard = new foo(2);
cout << "Bar.Return() = " << Bar.Return() << "\n";
cout << "Bard.->Return() = " << Bard->Return() << "\n";
}