首页 > 编程语言 >C++ 使用 using 声明语句放开基类的重载函数

C++ 使用 using 声明语句放开基类的重载函数

时间:2024-08-23 19:49:04浏览次数:7  
标签:string GetInfo C++ Animal 基类 using include public

#include <functional>
#include <string>
#include <iostream>
#include <vector>
#include <memory>
#include <set>
#include <map>

using namespace std;

namespace
{
    class Animal
    {
    public:
        string GetInfo()
        {
            return "我是动物";
        }
    };

    class Dog :public Animal
    {
    public:
        using Animal::GetInfo;
        string GetInfo(string exta)
        {
            return "我是动物:" + exta;
        }
    };
}
#if 1

int main()
{
    Dog dog;
    //cout << dog.Animal::GetInfo() << endl;
    cout << dog.GetInfo() << endl;
    cout << dog.GetInfo("狗") << endl;

    return 0;
}

#endif

输出:

我是动物
我是动物:狗

如果不是使用using语句声明,就需要用显式的域来访问:dog.Animal::GetInfo()

标签:string,GetInfo,C++,Animal,基类,using,include,public
From: https://www.cnblogs.com/huvjie/p/18376947

相关文章

  • C++ STL源码个人学习与分析记录 ——空间配置器(allocator)
    STL源码个人学习与分析记录——空间配置器(allocator)1.为什么需要空间配置器?2.SGI-STL空间配置器的实现2.1一级空间配置器:malloc_alloc_template2.2二级空间配置器:default_alloc_template2.2.1.内存池技术2.2.2.自由链表(free-list)2.2.3Union2.3二级空间配置器的......
  • C++ STL源码个人学习与分析记录 ——Construct()与Destroy()
    STL源码个人学习与分析记录——Construct()与destroy()1.目前所使用的编译器1.1编译器:MinGWVersion:13.2.01.2MinGW的主要组件1.3写文初衷2.构造与析构工具:Construct()与Destory()函数的定义2.1Construct()函数的定义2.1.1“__cplusplus”的含义2.1.2编译组态2.1.3(void......
  • C++(time_t)
    目录1.数据类型:2.使用场景:3.常见函数:4.时间的存储和表示:5.示例:6.注意事项:在C++中,time_t是一种数据类型,用于存储日历时间。它定义在<ctime>头文件中。time_t本质上是一个算术类型,通常是整数或浮点数,用于表示从标准纪元(通常是1970年1月1日00:00:00UTC,称为“Unixepo......
  • 小白学习c++{复习篇}P11【2066】买图书(c++)详细讲解
    目录EXTRA##PT1-代码呈现awaPT2-问题填空qwqPT3-课后小结......
  • C++的动态数组vector番外之capacity
    今日诗词:爱他明月好,憔悴也相关。西风多少恨,吹不散眉弯。                    ——《临江仙·寒柳》【清】纳兰容若目录引言正文string中的和vector中的capacity有什么区别 vector扩容时内存分配的策略是什么?capacity在vect......
  • 在C#中调用C++dll
        一、C++函数中的double**参数C++DLL中的接口如下:intgray2energy(double**data,constintlength,constdoublegamma);在C#中调用C++:方式1,通过指针的方式在C#也用double**对应C++中的double**[DllImport("xxxx.dll",CallingConvention=CallingConven......
  • 小朋友学C++-题集
    小朋友学C++参考c语言基础啊哈C语言书籍算法图解-python.pdfc语言教程在线C++/C/python编译器C语言基础==========================C语言精读100例!!!!C语言实验指导与习题解答小项目学习扫雷小游戏贪吃蛇小游戏学生成绩管理系统图书管理系统小说分析软件第一章,与......
  • C++ (病毒代码) (3)
    所有都可以,亲自尝试   第2个不要怕,只会关机!一切都可以用  ALT+F4  结束运行窗口即可解决!!! 1.鼠标乱飞 #include<windows.h>#include<ctime>usingnamespacestd;intmain(){   Sleep(1000);   intx=GetSystemMetrics(SM_CXSCREEN);   ......
  • C++ 打字游戏 (1)
    好玩!!!!!!!!!!!#include<iostream>#include<windows.h>#include<conio.h>usingnamespacestd;floatscore;intblue,yellow,use=1;intmain(){   system("title打字练习");   for(;;)   {      system("cls");   ......
  • C++基础
    C++面向对象编程的四大特性:封装:封装是隐藏对象的属性和实现细节,仅对外公开接口,控制程序对类属性的读取和修改。良好的分装能减少耦合,同时隐藏实现细节。抽象:抽象包括数据抽象和过程抽象。数据抽象关注于目标的特性信息,过程抽象关注于目标的功能是什么,而不是功能怎么实现。继承......