Path: utzoo!attcan!uunet!husc6!rice!uw-beaver!teknowledge-vaxc!mkhaw From: mkhaw@teknowledge-vaxc.ARPA (Mike Khaw) Newsgroups: comp.lang.c++ Subject: references and casts Message-ID: <26414@teknowledge-vaxc.ARPA> Date: 24 Jan 89 18:55:47 GMT Reply-To: mkhaw@teknowledge-vaxc.ARPA (Mike Khaw) Organization: Teknowledge, Inc., Palo Alto CA Lines: 41 I have the following program: extern int printf(char*, ...); enum sym { FIRST, SECOND, THIRD }; main() { void func(int&); sym foo = THIRD; int far = 0; int& boo = (int) foo; int& bar = far; func(boo); printf("foo = %d, boo = %d\n", foo, boo); func(bar); printf("far = %d, bar = %d\n", far, bar); } void func(int& i) { i = 1; return; } Why does Oasys C++ 1.2 yield foo = 2, boo = 1 far = 1, bar = 1 I expected "foo = 1, boo = 1". Do I misunderstand how references work? Thanks, Mike Khaw -- internet: mkhaw@teknowledge.com uucp: {uunet|sun|ucbvax|decwrl|ames|hplabs}!mkhaw%teknowledge.com hardcopy: Teknowledge Inc, 1850 Embarcadero Rd, POB 10119, Palo Alto, CA 94303