T.R | Title | User | Personal Name | Date | Lines |
---|
794.1 | | TLE::LUCIA | http://asaab.zko.dec.com/~lucia/biography.html | Mon Jan 27 1997 12:37 | 10 |
| What other class members ought to have the class scope? We don't print it for
any 'print' command that I know of. stop in and the associated reporting
mechanism print the class name::member...
What happens with (assuming they work right) assignment? Do you say a
c1.numbers=zero or a c1.numbers=c1::zero? And if C2 is derived from C1 then it
gets even more confusing.
cout << c1.numbers says 0
|
794.2 | | ADA9X::BRETT | | Tue Jan 28 1997 19:39 | 7 |
| *ALL* class members ought to have class scope.
For assignment, you must say (assuming you are outside the class)
C::E e = C::e1;
/Bevin
|
794.3 | | TLE::LUCIA | http://asaab.zko.dec.com/~lucia/biography.html | Wed Jan 29 1997 11:25 | 32 |
| > *ALL* class members ought to have class scope.
What do you really mean?
class foo {
public:
foo();
void print();
private:
int x;
};
whatis foo
class foo {
void foo::foo(void);
void foo::print(void);
int foo::x;
}
??
what if we've entered 'class foo' to set the current scope?
I think some enumeration is important to get this right. Otherwise, it will be
more noise than help. I ran into this problem when I made ladebug do
language-dependent printing of types (mostly Fortran/Cobol/Ada changes, but the
general mechanism was implemented and then C/C++ were made to use it) and the
combinatorics get large very very quickly.
Tim
|
794.4 | | ADA9X::BRETT | | Wed Jan 29 1997 11:38 | 20 |
| I see your point.
The problem is you have to print out the qualified name being sensitive to
where it is.
For example
class C1 {
typedef int T1;
T1 x;
};
class C2 {
C1::T1 x;
};
I agree that ladebug should strip off the leading part of the qualified
name that corresponds to the scope that is being shown.
/Bevin
|
794.5 | | TLE::BRETT | | Thu May 01 1997 09:46 | 14 |
| (ladebug) whereis zero
"tmp.cxx"`C2._DECCXX_generated_name_16ee17bf.zero
"tmp.cxx"`C1.zero
"tmp.cxx"`C2.zero
"tmp.cxx"`C1._DECCXX_generated_name_1abbf85e.zero
We should not be printing out the _DECCXX_generated_name_*
cases (although this may be a compiler/GEM issue, since doesn't happen in
.c cases)
We should be using :: not . as the separator
/Bevin
|
794.6 | Fixed! | TLE::SUBIR | | Tue May 06 1997 07:29 | 3 |
| This is fixed in -36.
Subir
|
794.7 | | TLE::BRETT | | Tue May 06 1997 08:46 | 3 |
| The base note is fixed, but the issues in .-2 aren't
/Bevin
|