C++类与继承复习

虚基类

  --有纯虚函数的类,只能作为基(父)类(接口)去派生子类,不能生成对象(类的实例)

 1 //虚基类作为接口  不能用于产生本类的实例 
 2 class Father{
 3     
 4     public :
 5         virtual void Printf(char *str) = 0;
 6         
 7     private:
 8         char str[50];    
 9         
10     protected:
11         void Set_str(char *mystr)
12         {
13             char i = 0;    
14             while(*mystr!='')
15             {
16                 str[i++] = *(mystr++);
17             }
18             str[i] = '';    //添加字符串结束标志 
19         }
20         
21         char* Get_str(void)
22         {
23             return str;
24         }    
25 };

  --虚基类的派生(子)类,若要用于生成对象,则派生类要将虚基类中所有的纯虚函数做实现

 1 /*************************************************************************
 2 *@若公有继承, 需要将虚基类的所有虚函数都做具体实现(定义) 
 3 *@若保护继承,则基类的公有成员成为子类的保护成员
 4 *@若私有继承,则基类的公有与保护成员均成为子类的私有成员
 5 *@不论以以上3种的任何一种方式继承,子类均不能访问基类的私有成员
 6 *@类的友元类或友元函数可以访问该类的私有成员 
 7 ************************************************************************/
 8 class Son : public Father{
 9     public:
10          void Printf(char *str);
11          void Re_Printf();//子类自有公有成员函数 
12 };
13 
14 //类外实现 
15 void Son::Printf(char *str)
16 {
17     printf(str);
18 }
19 
20 void Son::Re_Printf()
21 {    
22     Set_str("China NO.1rn");    //子类可访问基类的保护成员void Set_str(char *mystr) 
23     printf(Get_str());
24 }

主函数实现及效果

1 int main(int argc, char *argv[])
2 {
3     
4     Son test;    //创建类的实例
5     test.Printf("子类创建的成员,而非继承自基类rn");
6     test.Re_Printf(); 
7     return 0;
8 }

C++类与继承复习

 

 总结:

  复习了类,虚基类,派生类,以及类的公有、保护、私有成员的访问权限

原文链接: https://www.cnblogs.com/aloneYu/p/13301552.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++类与继承复习

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/365844

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午4:23
下一篇 2023年3月2日 下午4:23

相关推荐