OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.law/] [visibility2.C] - Diff between revs 305 and 338

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do assemble  }
// { dg-do assemble  }
// GROUPS passed visibility
// GROUPS passed visibility
#include 
#include 
class base {
class base {
//==========
//==========
    void base_priv(const char * n)
    void base_priv(const char * n)
        { std::cout << "base_priv called from: " << n << "\n";  }
        { std::cout << "base_priv called from: " << n << "\n";  }
protected:
protected:
    void base_prot(const char * n)
    void base_prot(const char * n)
        { std::cout << "base_prot called from: " << n << "\n"; }
        { std::cout << "base_prot called from: " << n << "\n"; }
public:
public:
    void base_publ(const char * n)
    void base_publ(const char * n)
        { std::cout << "base_publ called from: " << n << "\n"; }
        { std::cout << "base_publ called from: " << n << "\n"; }
    void test(const char * n) { base_publ(n); base_prot(n); base_priv(n); }
    void test(const char * n) { base_publ(n); base_prot(n); base_priv(n); }
}; // class base
}; // class base
class derived : public base {   // Make this public,
class derived : public base {   // Make this public,
//============================  // and we don't get an error
//============================  // and we don't get an error
friend void derived_friend();
friend void derived_friend();
public :
public :
    void test(const char * n) { base_publ(n); base_prot(n);}
    void test(const char * n) { base_publ(n); base_prot(n);}
}; // class derived
}; // class derived
void
void
derived_friend()
derived_friend()
//--------------
//--------------
{
{
    derived pd;
    derived pd;
    pd.base_publ("friend of derived class");    // Compiler error here
    pd.base_publ("friend of derived class");    // Compiler error here
    pd.base_prot("friend of derived class");
    pd.base_prot("friend of derived class");
}
}
int main(int argc, char *argv[])
int main(int argc, char *argv[])
//==========================
//==========================
{
{
    base b;
    base b;
    b.base_publ("base class object");
    b.base_publ("base class object");
    b.test("member of base class object");
    b.test("member of base class object");
    std::cout << "\n";
    std::cout << "\n";
    derived pd;
    derived pd;
    pd.test("member of derived class object");
    pd.test("member of derived class object");
    derived_friend();
    derived_friend();
    std::cout << "\n";
    std::cout << "\n";
} /* main */
} /* main */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.