首页 > 编程语言 >C++ —— 重载、重写和重定义

C++ —— 重载、重写和重定义

时间:2023-04-16 18:34:17浏览次数:33  
标签:cnt MyPrint void C++ class 重载 MyClass 重写 public

1 重载

一般是类内部方法的关系

class MyClass {
public:
    void MyPrint();
    void MyPrint(int cnt);
    void MyPrint(int cnt, const string& msg);
};

2 重写

一般父子类中方法的关系
对父类虚函数进行重载

class MyClass {
public:
    virtual void MyPrint();
};

class MyClassC : public MyClass {
public:
    void MyPrint(); // 重写MyClass::MyPrint
};

3 重定义

一般父子类中方法的关系

class MyClass {
public:
    void MyPrint();
};

class MyClassC : public MyClass {
public:
    void MyPrint(); // 重定义MyClass::MyPrint
};

C++最特殊的oop特性

重定义父类所有的方法名相同的方法,而其他oop语言不一样

class MyClass {
public:
    void MyPrint();
    void MyPrint(int cnt);
    void MyPrint(int cnt, const string& msg);
};

class MyClassC : public MyClass {
public:
    void MyPrint(); // 重定义所有MyClass::MyPrint
};


标签:cnt,MyPrint,void,C++,class,重载,MyClass,重写,public
From: https://www.cnblogs.com/hiloong/p/17323787.html

相关文章

  • c++文件操作
    include<iostream>#include<fstream>usingnamespacestd;#include<string>voidtest01(){stringl;ofstreama;a.open("test.txt",ios::out);/*getline(cin,l);*///可以正常写入空格a<<"你好!!!"<......
  • C++实现多线程
    #include<iostream>#include<chrono>#include<thread>voidprintNumbers1(){for(inti=1;i<=10000;i++){std::cout<<"Thread1:"<<i<<std::endl;}}voidprintNumbers2(){for......
  • C++动态数组(vector.h)
    #include<iostream>#include<vector>intmain(){std::vector<std::string>con;con.push_back("9999");std::cout<<con[0];return0;}vector搞了一个多态,你可以随便赋值和数组一样,不过是动态的,读取的话vector有自带的比for更优雅的方式......
  • C++ auto关键字
    auto 是C++11中新增的一种类型推导关键字,可以根据变量的初始化表达式,自动推导出相应的类型。使用 auto 可以简化代码,减少类型错误的发生,提高代码的可读性和可维护性。下面是 auto 的使用示例,假设我们有一个整数变量 x,可以这样使用 auto 进行类型推导:autox=10;/......
  • C++的namespace
    这个也是和Java不同的地方,作用是为了防止类的名字冲突#include<iostream>namespacemyspace{classA{public:std::stringhead;private:std::stringbody;};}namespacemyspace2{classA{public:......
  • c++打卡第六天
    Ⅰ一、问题描述定义一个函数判断一个数是否为质数。二、设计思路①输入一个数,同时进入函数判断。②进入函数可以通过for循环判断n是否为质数③当这个数为1时,不是质数,而当这个数是23时,是质数。④可以通过循环质因数,其范围到n的开平方。三、流程图四、代码实现 #in......
  • C++中的继承
    #include<iostream>classA{public:std::stringhead;voidhello(std::stringstr){std::cout<<str<<head<<std::endl;}};intmain(){Aa;std::stringstr="hello";a.head......
  • C++访问控制public private
    #include<iostream>classA{public:std::stringhead;private:std::stringbody;};intmain(){Aa;a.head="888";a.body="999";return0;}报错结果main.cpp:Infunction‘intmain()’:main.c......
  • C++11新特性
    移动语义概念理解可以取地址的是左值,不能取地址的就是右值。右值短暂的存在于栈上。右值包括:临时对象、匿名对象、字面值常量const左值引用可以绑定到左值与右值上面。正因如此,也就无法区分传进来的参数是左值还是右值。右值引用只能绑定到右值,不能绑定到左值。所以可以区分......
  • C++冒泡排序简单讲解
    什么是冒泡排序冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢......