diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.law/operators8.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.law/operators8.C | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators8.C b/gcc/testsuite/g++.old-deja/g++.law/operators8.C new file mode 100644 index 000000000..16c91cdef --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.law/operators8.C @@ -0,0 +1,52 @@ +// { dg-do run } +// GROUPS passed operators +#include <stdio.h> + +class shape { + public: + virtual int vDisplay(void) const = 0; + protected: + int X; + int Y; +}; + +class square :public shape { + public: + square(int x, int y, int width_) { + X = x; + Y = y; + width = width_; + } + int vDisplay(void) const { + printf ("PASS\n"); + return 0; + } + protected: + int width; +}; + + +class triangle :public shape { + public: + triangle(int x, int y, int width_, int height_) { + X = x; + Y = y; + width = width_; + height = height_; + } + int vDisplay(void) const { + printf ("FAIL\n"); + return 1; + } + protected: + int width; + int height; +}; + +int main() { + shape* s1 = new square(4,4,5); + shape* s2 = new triangle(6,6,2,3); + *s1 = *s2; + return s1->vDisplay(); +} + |