1*b725ae77Skettenis // Class funk has a constructor and an ordinary method
2*b725ae77Skettenis // Test for CHFts23426
3*b725ae77Skettenis
4*b725ae77Skettenis class funk
5*b725ae77Skettenis {
6*b725ae77Skettenis public:
7*b725ae77Skettenis funk();
8*b725ae77Skettenis void getFunky(int a, int b);
9*b725ae77Skettenis int data_;
10*b725ae77Skettenis };
11*b725ae77Skettenis
funk()12*b725ae77Skettenis funk::funk()
13*b725ae77Skettenis : data_(33)
14*b725ae77Skettenis {
15*b725ae77Skettenis }
16*b725ae77Skettenis
getFunky(int a,int b)17*b725ae77Skettenis void funk::getFunky(int a, int b)
18*b725ae77Skettenis {
19*b725ae77Skettenis int res;
20*b725ae77Skettenis res = a + b - data_;
21*b725ae77Skettenis data_ = res;
22*b725ae77Skettenis }
23*b725ae77Skettenis
24*b725ae77Skettenis // Class A has const and volatile methods
25*b725ae77Skettenis
26*b725ae77Skettenis class A {
27*b725ae77Skettenis public:
28*b725ae77Skettenis int x;
29*b725ae77Skettenis int y;
30*b725ae77Skettenis int foo (int arg);
31*b725ae77Skettenis int bar (int arg) const;
32*b725ae77Skettenis int baz (int arg, char c) volatile;
33*b725ae77Skettenis int qux (int arg, float f) const volatile;
34*b725ae77Skettenis };
35*b725ae77Skettenis
foo(int arg)36*b725ae77Skettenis int A::foo (int arg)
37*b725ae77Skettenis {
38*b725ae77Skettenis x += arg;
39*b725ae77Skettenis return arg *2;
40*b725ae77Skettenis }
41*b725ae77Skettenis
bar(int arg) const42*b725ae77Skettenis int A::bar (int arg) const
43*b725ae77Skettenis {
44*b725ae77Skettenis return arg + 2 * x;
45*b725ae77Skettenis }
46*b725ae77Skettenis
baz(int arg,char c)47*b725ae77Skettenis int A::baz (int arg, char c) volatile
48*b725ae77Skettenis {
49*b725ae77Skettenis return arg - 2 * x + c;
50*b725ae77Skettenis }
51*b725ae77Skettenis
qux(int arg,float f) const52*b725ae77Skettenis int A::qux (int arg, float f) const volatile
53*b725ae77Skettenis {
54*b725ae77Skettenis if (f > 0)
55*b725ae77Skettenis return 2 * arg - x;
56*b725ae77Skettenis else
57*b725ae77Skettenis return 2 * arg + x;
58*b725ae77Skettenis }
59*b725ae77Skettenis
60*b725ae77Skettenis
main()61*b725ae77Skettenis int main()
62*b725ae77Skettenis {
63*b725ae77Skettenis A a;
64*b725ae77Skettenis int k;
65*b725ae77Skettenis
66*b725ae77Skettenis k = 10;
67*b725ae77Skettenis a.x = k * 2;
68*b725ae77Skettenis
69*b725ae77Skettenis k = a.foo(13);
70*b725ae77Skettenis
71*b725ae77Skettenis k += a.bar(15);
72*b725ae77Skettenis
73*b725ae77Skettenis // Test for CHFts23426 follows
74*b725ae77Skettenis funk f;
75*b725ae77Skettenis f.getFunky(1, 2);
76*b725ae77Skettenis return 0;
77*b725ae77Skettenis }
78*b725ae77Skettenis
79*b725ae77Skettenis
80*b725ae77Skettenis
81