visibility1.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 69 行

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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?