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