`

c++ 虚函数 const等的一些小问题记录

c++ 
阅读更多
class Base{
public:
    void test(int a);
    void test(const int a);//error,不属于重载的范畴,函数名冲突.而且这么定义没意义,本来传值就不会改变原值。
}

class Base{
public:
    void test(int &a);
    void test(const int &a);//right.属于重载
}
原因很简单。上面的参数是传值,所以肯定不会改变实参的值。传什么都行。
下面传的是引用,是可能改变原值得。所以算重载。

下面同理:
class Base{
public:
    void test(int a);
    void test(int a) const;//right,同上
};

最后:
class Base{
public:
    virtual test(int a);
};

class Child:public Base{
public:
    test(int a) const;//屏蔽父类虚函数。一样的道理
}
分享到:
评论

相关推荐

    C++基础C++相关笔记总结

    根据给定的文件信息,以下是对C++基础知识的详细总结,涵盖了标题与描述中的关键知识点,包括虚函数、常量成员函数、构造函数、析构函数、模板等核心概念。 ### 虚函数与常量成员函数 在C++中,虚函数允许派生类...

    c++复习记录1

    以上是C++的一些核心概念和用法,涵盖了函数原型、泛型、内存管理、构造函数、多态、虚函数、继承、模板、友元和智能指针等方面,这些都是C++编程的基础。理解并掌握这些知识点,对于深入学习和使用C++至关重要。

    八股文C++篇(超级全)-c++八股文.pdf

    - **虚函数表**: 记录了指向虚函数的指针,支持动态绑定。 ### 13. 杂项 - **32位整型**: 在大小端的区别取决于系统的字节顺序。 - **空类的大小**: 通常至少为1字节,以确保每个对象都有唯一的地址。 - **指针和...

    c++面试必须知道的问题.

    理解虚函数表的工作原理对于理解C++中的动态绑定机制至关重要。 ### 12. const修饰符的使用 `const`修饰符用于指定一个变量或对象的状态不可改变,这有助于防止意外修改,并提高代码的安全性和可读性。 ### 13. ...

    Effective C++ 3rd Item 9

    ### Effective C++ 第3版 第9条:构造或析构期间不要调用虚函数 在C++编程中,虚函数是实现多态的关键机制之一。然而,在特定情况下使用虚函数可能会带来不可预料的行为,尤其是在对象构造和析构的过程中。本条目...

    C++编程思想习题

    14.8.2虚函数在构造函数中的行为 14.9析构函数和虚拟析构函数 14.10小结 14.11练习 第15章 模板和包容器类 15.1包容器和循环子 15.2模板综述 15.2.1C方法 15.2.2Smalltalk方法 15.2.3模板方法 15.3模板的语法 15.3.1...

    C++三大特性复习

    虚函数表和虚函数指针是C++中支持多态的重要机制之一。 - **操作符重载**: C++允许对大多数内置操作符进行重载,以便在自定义类型上使用。操作符重载可以通过成员函数或友元函数来实现。例如,`operator+` 可以用来...

    C++实验报告.doc

    - **多态性**:建立一个包含抽象基类的多态类层次结构,通过基类指针调用虚函数,展示多态性。 在实现以上内容时,需要注意内存管理,避免内存泄漏,同时确保程序的健壮性和可维护性。在编写代码时,应遵循良好的...

    C/C++编程小结

    在C/C++编程中,const关键字与#define预处理指令都用来定义常量,但它们之间存在一些差异。const定义的常量具有数据类型,在编译时会进行类型安全检查,而#define定义的宏常量仅进行字符替换。此外,const常量可以被...

    C++编程思想.pdf

    内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、动态对象创建、继承和组合、多态和虚函数、模板和包容器...

    记录学习完C语言后,学习C++的过程,实现从C语言到C++的过渡.zip

    多态则是通过虚函数(virtual function)和抽象基类(abstract class)实现,允许不同类型的对象对同一消息作出不同的响应。 C++的STL(Standard Template Library,标准模板库)提供了容器(如vector、list、set等...

    求职c++后台工作的重点总结

    在C++中,虚函数和纯虚函数是面向对象编程中实现多态性的关键概念。 1. **定义与特性**: - **虚函数**(Virtual Function):允许在派生类中被重写,并通过基类指针或引用调用,从而实现运行时多态。 - 定义形式...

    C++做的超市收银系统

    2. **深入理解虚函数的概念与应用方法**:通过定义虚函数和重写虚函数的方法,实现不同类之间的多态行为。 3. **深入理解函数重载的概念与应用**:在类中定义多个同名但参数不同的函数,提高代码的复用性和可读性。 ...

    C++ 语言 详细教程电子版

    内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、动态对象创建、继承和组合、多态和虚函数、模板和包容器...

    C++编程规范关于C++编程要注意的细节

    - 隐藏是派生类中定义了一个与基类中成员相同的名字,但不是虚函数。 **8.3 参数的缺省值** - 函数参数可以设置缺省值。 - 调用时可以选择性地提供参数值。 **8.4 运算符重载** - 通过定义特殊成员函数实现运算符...

    c++面向对象程序设计报告

    本文主要介绍了C++面向对象编程的一些基本概念,包括类的定义、虚函数以及运算符重载等内容,并且简单提到了一些网络相关的知识点。通过理解这些概念,可以帮助开发者更好地掌握C++语言以及网络编程的基础。

    C++ 11 学习总结文档

    14. **断言**:除了运行时的`assert`,C++11还引入了编译时的`static_assert`,可以在编译阶段验证条件,有助于及早发现类型错误等问题。 15. **`POD`类型**:即“Plain Old Data”类型,是一种简单的数据结构,...

    Delphi与C++数据类型对照表

    - C++也支持类、继承和接口(虚函数和抽象类实现接口功能),但C++只支持单一继承,多态性主要通过虚函数实现。 4. 字符串类型: - Delphi的字符串类型是UnicodeString或AnsiString,它们是动态长度的,并且支持...

    C++试题集_C++试题集

    - 基类`Shape`提供虚函数`area()`和纯虚函数`display()`。 - 派生类`Triangle`覆盖基类方法,实现具体逻辑。 2. **多态** - 通过虚函数实现不同形状面积计算的多态性。 ### 题目六:学生信息处理 1. **结构体与...

    面试-C++操作系统数据库设计模式

    在面试中,操作系统的问题往往涉及到进程、线程、内存管理、文件系统、进程间通信、死锁等概念。而设计模式则是软件工程中的一个重要组成部分,涉及面向对象设计中常用到的一些模式和方法,以提高代码的可重用性、可...

Global site tag (gtag.js) - Google Analytics