Need help with C++ and classes

Gary Chatters gc-ar-l at garychatters.com
Tue Nov 11 15:07:19 CST 2008


Alberto di Bene wrote:
> Terry Fox wrote:
>
>   
>> My problem is that the
>> reverse is not true.  Those other classes cannot gain access to the class 1
>> variables or methods, even though they are declared public.
>>     
>
> If the class1.h file in #included in the class2.h file, then all the public members of class1 *must* be accessible from 
> class2....
>
> 73  Alberto  I2PHD
>
>   
As I understood the situation, an object of class 2 could not access a 
public variable or member function (method) of an object of class 1.  
This was because the scope of the class 1 object being outside the class 
2 member function.  A C++ object is a variable and must be in scope to 
be accessed.  To put it in to very abbreviated source code:

class Class1 {
    public:
        int f1();
        int v1;   //  For illustration purposes.  Attributes should not 
generally be public.
}

class Class2 {
    public:
        int f2();
        int v2;
}

int Class1::f1()
{
    Class2 c2;
    int fv1;
   
    fv1 = c2.f2();  // Object c2 is in scope.  Class1 function f1 can 
access it.
    return fv1;
}

int Class2::f2()
{
    int fv2;
    fv2 = c1.v1;  // Error.  Object c1 not in scope here.  It is in 
main.  Can not access it here.
    return 0;
}

main()
{
     Class1 c1;
    int mv1;
    mv1 = c1.f1();
}

The class 1 object, or its attributes, could be made available by 
passing the appropriate pointer or value to the class 2 object.

gc


More information about the Tacos mailing list