`
韩冬冬
  • 浏览: 14268 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

c++ 类的虚拟函数和缺省实参

阅读更多
#include <iostream>

class Base{
public:
virtual int foo( int ival = 1024 )
{
cout<<"Base::foo()----- ival: "<<ival<<endl;
return ival;
}
};

class Derived : public Base
{
public:
virtual int foo( int ival = 2048)
{
cout<<"Derived::foo()----- ival: "<<ival<<endl;
return ival;
}
};


Derived *pd = new Derived;
Base *pb = pd;
pb->foo();//输出结果为:Derived::foo()----- ival: 1024
结论:由于虚拟机制 pb调用的是派生类的成员函数,但是缺省实参的值由基类指定!

 

分享到:
评论

相关推荐

    C++中构造函数的参数缺省的详解

    C++中构造函数的参数缺省的详解 前言: 构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。在构造函数中也可以采用这样的方法来实现初始化。 #...

    C++选择题填空题.doc

    C++选择题填空题 根据提供的文件信息,我们可以...这些知识点涵盖了 C++ 的多个方面,包括类和对象、函数和重载、继承和多态性、常成员函数和常数据成员等。这些建议可以帮助开发者更好地理解和使用 C++ language。

    Visual C++中函数调用方式浅探.docx

    在Visual C++中,函数调用方式可以分为两种:C式调用和Pascal式调用。其中,C式调用是缺省的,除非特殊声明。在本文中,我们将详细探讨这两种调用方式的差异和实现过程。 一、C式调用(cdecl) C式调用是Visual ...

    C++初学者入门指南第六篇 中文

    本章节深入探讨了C++中函数的高级特性,包括引用、函数重载、缺省参数以及参数传递的不同方式。掌握这些概念不仅有助于编写更高效、更安全的代码,也加深了对C++语言特性的理解,为成为一名熟练的C++程序员奠定了...

    C++选择题和判断题.docx

    3. 函数重载和缺省参数:C++支持函数重载,允许设置缺省参数,但规定在设置了缺省值的参数右边不能再有未设置缺省值的参数,选项B是正确的描述。 4. 构造函数:构造函数是类的特殊成员函数,用于初始化新创建的对象...

    C++语言习题及解答

    7. **动态内存分配**:使用`new`申请类的动态对象数组时,如果类中没有无参数或缺省参数的构造函数,程序会编译错误。 8. **静态数据成员**:静态数据成员在类外初始化,且所有对象共享同一份拷贝。 9. **if......

    C++期中考试试题.doc

    本资源摘要信息是根据C++期中考试试题.doc文件生成的,涵盖了C++基础知识、对象动态初始化、形参和实参、函数重载、类和对象、继承和派生、指针、引用等方面的知识点。 知识点1:C++与C语言的不同之处 C++与C语言...

    C++程序设计:第4章 函数与预编译预处理.pptx

    4.2 函数间参数传递:C++支持值传递和引用传递两种方式。值传递是复制实参的值给形参,而引用传递则让形参成为实参的别名,两者共享同一块内存。在值传递中,函数内部对形参的修改不会影响到实参,而在引用传递中则...

    C++选择题填空题.pdf

    C++是一门强大的面向...以上是对C++中涉及的概念和知识点的详细解释,涵盖了类、对象、成员函数、参数传递、函数重载、继承、多态、友元、静态成员、模板和析构函数等多个方面。这些知识是理解和编写C++程序的基础。

    c++自测题,笔试题

    这涉及到C++的函数调用规则和参数传递机制。 2. 函数的定义不允许嵌套,但函数的调用可以嵌套。这意味着一个函数内部可以调用其他函数,而不能定义新的函数。 3. 当用数组名作为函数调用的实参,传递给形参的是...

    清华大学计算机系C++试题及答案.pdf

    7. 动态对象数组:用new申请类的动态对象数组时,需要匹配到无参构造函数或缺省参数构造函数。 8. 静态数据成员:静态数据成员在类外初始化,并由所有类对象共享。 9. if...else配对规则:C++规定else总是与最近未...

    C++重要知识点总结

    STL(Standard Template Library)是C++的一个重要组成部分,提供了大量的模板类和函数,用于实现通用的数据结构和算法。STL主要由三个部分组成: 1. **容器**:容器是用来存储数据的结构,如`vector`、`list`等。 ...

    07级C++期末考试考试题

    这篇07级C++期末考试试题涵盖了C++的基础知识和核心概念,包括函数参数传递、对象、类、继承、多态性、构造函数与析构函数、动态内存管理、常量与const成员函数、用户自定义数据类型、字符串处理、输入输出库以及...

    C++程序员面试题集

    知识点:运算符重载有三种方式,分别是普通函数、友元函数和类成员函数。 20. 流运算符为什么不能通过类的成员函数重载? 一般怎么解决? 答:因为通过类的成员函数重载必须是运算符的第一个是自己,而对流运算的...

    C++选择题填空题.docx

    成员函数的原型(函数声明)可以在类内声明,而函数的实现(函数体)可以放在类外,这种方式称为前向声明和分离实现。 2. **引用和指针**:在C++中,引用是一个已命名的内存地址别名,它在声明时必须初始化,且一旦...

    C++模拟试卷_2021_答案1

    在 C++ 中,派生类可以访问基类的公有和保护成员,但是不能访问私有成员。 4. 关于函数的所有缺省参数的叙述正确的是B. 只能出现在参数表的最右边。在 C++ 中,缺省参数只能出现在参数表的最右边,以免引起歧义。 ...

    C++语言程序设计自测练习

    - 内部静态类(static class)的对象在其定义的函数或类内部可见,但生存期超出函数执行,与全局变量类似,所以可见性和生存期不一致。 15. **存储类与局部变量**: - 外部静态类的对象不是局部变量,它们在程序...

Global site tag (gtag.js) - Google Analytics