Re: precondition and post condition check
* George:
I am looking for a good sample about how to implement C++ pre-condition and
post condition check, but can not find a good sample code. Do you have any
referred ones? :-)
Since I can not find, I wrote the patterns in two ways, I am not sure which
is correct and if both are not correct, how to implement this pattern?
Sample code 1,
[Code]
#define MAX 1024
class Base
{
public:
void foo(int i)
{
if (i > MAX)
{
// error handling
}
else
{
do_foo(i);
}
}
private:
virtual void do_foo(int i) = 0;
};
class Derived : public Base
{
private:
virtual void do_foo(int i)
{
// i is never > MAX here
}
};
int main()
{
Derived d;
d.foo (1000);
return 0;
}
[/Code]
Sample 2,
[Code]
#define MAX 1024
class Base
{
public:
void foo(int i)
{
if (i > MAX)
{
// error handling
}
else
{
do_foo(i);
}
}
private:
virtual void do_foo(int i) = 0;
};
class Derived : public Base
{
public:
virtual void do_foo(int i)
{
foo (i);
// i is never > MAX here
}
};
int main()
{
Derived d;
d.do_foo (1000);
return 0;
}
[/Code]
Why not try your code with a C++ compiler?
Also, with your latest questions it seems you're essentially asking the
community to /do your thinking for you/, since you evidently know all that's
required to find the answers for yourself (the same way responders have to do).
In passing, in C++ it's generally a good idea to avoid macros in favor of typed
constants, inline functions and templates.
Of course, but I don't think that's your intent here, the folks who respond here
know a thing or two and so can point you toward relevant things you perhaps
didn't know existed, like <url: http://www.google.no/search?q=aspect+c%2B%2B>
or, for invariant checking, <url: http://www.research.att.com/~bs/wrapper.pdf>,
or the DBC proposal for C++0x (try to find it).
If that's the kind of response you're looking for you'd be better off asking for
guidance about learning more about a given subject matter, e.g. "I'm currently
studying pre- and post-condition checking in C++; here's what I learned so far;
I'm interested in learning about possible other approaches".
Cheers, & hth.,
- Alf
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?