首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

多态向量C++ -没有匹配的成员函数用于调用“compare”

多态向量C++是指在C++中使用多态性的向量数据结构。多态性是面向对象编程的一个重要特性,它允许不同类型的对象对同一个函数进行不同的实现,从而实现动态绑定和运行时多态。

在C++中,多态性通过虚函数和基类指针/引用来实现。通过将基类的函数声明为虚函数,派生类可以重写这些函数并提供自己的实现。当使用基类指针或引用调用虚函数时,实际调用的是派生类的实现。

对于给定的问题,错误提示“没有匹配的成员函数用于调用‘compare’”意味着在多态向量C++中调用了一个名为“compare”的函数,但没有找到匹配的函数。

为了解决这个问题,我们需要检查以下几个方面:

  1. 确保在多态向量类中定义了名为“compare”的成员函数。如果没有定义该函数,需要添加该函数的声明和实现。
  2. 确保在调用“compare”函数时,使用了正确的参数类型和数量。如果参数类型不匹配,需要进行类型转换或修改函数签名。
  3. 确保在调用“compare”函数之前,已经正确地创建了多态向量的对象,并且对象的类型正确地继承了基类。

如果以上步骤都正确执行,但仍然出现错误提示,可能是由于其他代码逻辑错误导致的。在这种情况下,需要仔细检查代码并进行调试,以找出问题所在。

关于多态向量C++的应用场景,它可以用于处理具有不同类型元素的向量,同时提供统一的接口进行操作。这在需要处理多种类型数据的情况下非常有用,例如在图形学、游戏开发、科学计算等领域。

腾讯云提供了丰富的云计算产品和服务,其中包括适用于多态向量C++开发的云服务器、云数据库、云存储等产品。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++ this指针:用于成员函数中指向调用函数对象

C++中this指针是一个指向当前对象指针。在成员函数中,可以使用this指针来访问调用函数对象成员变量和成员函数。...,返回是指向调用函数对象指针。...这里使用了*this来访问调用函数对象。 三、作为函数参数this指针 this指针也可以作为函数参数传递。这种情况下,可以在函数内部访问其他对象成员变量和成员函数。...在getName函数内部,使用了this指针访问调用函数对象成员变量name。...四、总结 this指针在C++中是一个非常重要概念,可以用来访问调用函数对象,作为返回值返回,或者作为函数参数传递。掌握this指针使用可以帮助我们更好地编写面向对象程序。

19940

C++多态 ⑨ ( vptr 指针初始化问题 | 构造函数调用函数 - 没有多态效果 )

, 则 没有 多态效果 ; 一、vptr 指针初始化问题 1、vptr 指针与虚函数表 " 虚函数表 " 由 C++ 编译器 负责 创建 与 维护 , 被 virtual 关键字 修饰函数 ,...会自动 被 C++ 编译器 存储到 " 虚函数表 " 中 , 类中会自动添加一个 " vptr 指针 " 成员变量 指向 虚函数表 ; 2、vptr 指针初始化时机 对象中 vptr 指针 指向 虚函数表...中 调用函数 , 则 没有 多态效果 ; 在 父类 构造函数中 , 调用了 父类函数 ; 此时 , 如果 创建 子类对象 , 执行 父类构造函数 , 仍然调用 父类 函数 , 子类函数...没有调用 , 说明 构造函数 执行期间 , 多态没有生效 ; 参考 【C++】继承 ⑧ ( 继承 + 组合 模式类对象 构造函数 和 析构函数 调用规则 ) 博客中 构造函数 调用规则 : 构造函数...: 父类 -> 成员 -> 自身 ; 首先 , 调用 父类 构造函数 ; 然后 , 调用 成员 构造函数 ; 也就是 成员变量 类型 构造函数 ; 最后 , 调用 自己 构造函数 ; 自身定义

22920

c++私有变量和公有变量_没有与指定类型匹配重载函数实例

accessor和mutator主要用来实现数据封装,有了accessor和mutator,我们就可以将数据成员设为私有,所有对它们读写操作都通过这两个函数来实现。...public: int getId();//accessor function,是只读性质函数 void setId(int id);//mutator function,是只写性质函数...}; 函数形参与类私有成员重名解决方法 ---- #include class retangle{ private: double width; double...会出现编译错误,原因大概是,编译器把两个width和height都当成是传进函数参数。...setHeight(double height) { this->height = height; return; } }; 通过引用this指针,可以明确复制号左操作数是调用函数对象里面的

1.3K20

C++多态 ⑧ ( 验证指向 虚函数 vptr 指针 | 对比定义了虚函数类和没有定义虚函数大小 )

对比 定义了 虚函数 类 与 没有定义虚函数大小 , 其它成员都相同 , 定义了虚函数类多出了 4 字节 , 多出 4 字节就是 vptr 指针占用内存空间 ; 一、验证指向 虚函数表... vptr 指针 是否存在 1、虚函数表与 vptr 指针由来 " 虚函数表 " 由 C++ 编译器 负责 创建 与 维护 , 被 virtual 关键字 修饰函数 , 会自动 被 C++ 编译器...虚函数指针 : " 虚函数表 " 是 存储 " 类成员函数指针 " 数据结构 , 是一个 函数指针数组 , 数组中元素都是函数指针 , 具体存储都是 指向 类中函数 指针 ; 如果 子类...会生成 虚函数表 Virtual Function Table , 简称 vtable ; C++ 编译器 编译 代码时 , 会自动为该类 添加 一个 vptr 指针 成员变量 , 该指针 会指向 虚函数表...Child c; // 将父类指针指向子类对象 p = &c; // 通过父类指针调用子类对象 fun 函数 p->fun(1); // 打印 Parent 大小 cout <<

18740

C++】继承 ③ ( 继承一些重要特性 | 子类拥有父类所有成员 | 多态性 | 子类可以拥有父类没有成员 | 代码示例 )

父类 私有成员 , 必须通过 父类 公有或受保护 成员函数 访问 父类 私有成员 ; 子类 不能访问 父类 私有成员 , 并不代表 子类 中没有 父类 私有成员 ; 下面的 Parent...callPrivateFun 函数 , 调用 privateFun 私有函数 ; 此时 , 在 子类中 , 可以通过调用 callPrivateFun 函数 , 间接调用 父类 privateFun...父类 私有成员 ; Child c; c.publicFunChild(); // 间接调用父类 私有成员 c.callPrivateFun(); 2、子类可以拥有父类没有成员...子类 可以 在 继承自 父类 成员变量 和 成员函数 基础上 , 定义 其它 成员变量 和 成员函数 ; 因此 , 子类 可以 拥有 父类 所没有成员变量 和 成员函数 ; 在下面的代码中...父类私有成员 //privateFun(); } }; 3、多态性 子类 可以 当做 父类 使用 , 子类 是 特殊 父类 ; 在下面的代码中 , 定义了 父类 Parent

46430

C# 学习笔记(4)—— C# 中面向对象编程

客户端可以通过异常捕获来进行错误处理 继承 在 C# 中,一个类可以继承另一个已有的类(密封类除外),被继承类成为基类(父类),继承类称为派生类(子类),子类将获得基类除构造函数和析构函数以外所有成员...C# 中继承 C# 与 C++ 不同,C# 仅支持派生于一个基类,而 C++ 则支持多重继承。...,同时也会调用基类构造函数。...子类初始化顺序如下: 初始化类实例字段 调用基类构造函数,如果没有指明基类,则调用 System.Object 构造函数 调用子类构造函数 namespace ConsoleApp1 {...这样,每个基类在调用相同方法时将表现出不同行为,这段代码正是 C# 中多态实现 如果子类还行继续访问基类定义方法,则可以使用base关键字完成调用 抽象类 上面的代码存在一个问题:我们可以通过new

18430

整理了70道C语言与C++常见问答题

C++中除了上述功能外,还用来定义类成员变量和函数。即静态成员和静态成员函数。...「注意」:编程时 static 记忆性,和全局性特点可以让在不同时期调用函数进行通信,传递信息,而 C++静态成员则可以在多个对象实例间进行通信,传递信息。...C语言结构体中数据成员没有private、public和protected访问限定。而C++成员有这些访问限定。 C语言结构体是没有继承关系,而C++类却有丰富继承关系。...例如,此处如果是compare(3,5),则调用普通模板,若为compare(“hi”,”haha”)则调用特例化版本(因为这个cosnt char*相对于T,更匹配实参类型),注意二者函数语句不一样了...,只是参数类型不同,按最佳匹配原则,哪个最匹配,就用相应模板) 「特例化类中部分成员」 可以特例化类中部分成员函数而不是整个类,举个例子: template class Foo

3K01

C++面向对象学习之运算符重载(1)

运算符重载(函数重载)是C++多态重要实现手段之一。通过运算符重载对运算符功能进行特殊定制,使其支持特定类型对象运算,执行特定功能,增强C++扩展功能。...+”重载为非成员函数后,C++编译系 统将程序中表达式 a+b 解释为:operator+(a,b) 即执行 a+b 相当于调用: Complex operator + (Complex &a,Complex...如果运算符左侧 操作数属于C++标准类型(如int)或是一个其他类对象,则运算符重载函数 不能作为成员函数,只能作为非成员函数。 如果函数需要访问类私有成员, 则必须声明为友元函数。 可以在 Complex...调用与之匹配运算符重载函数。 可以将以上两个运算符重载函数都作为友 元函数,也可以将一个运算符重载函数(运算符左侧为对象名) 作为成员函 数,另一个(运算符左侧不是对象名)作为友元函数。 但不可能将两个都作为...,此外没有任何作用。 编译系统在遇到重载后置自增运算符时,会自动调用函数。 请注意前置自增运算符“++”和后置自增运算符“++”二者作用区别。 前者是先自加,返回是修改后对象本身。 后者返回是自加前对象

83430

《逆袭进大厂》之C++篇49问49答(绝对干货)

:struct是用户自定义数据类型(UDT);C++中struct是抽象数据类型(ADT),支持成员函数定义,(C++struct能继承,能实现多态) C中struct是没有权限设置,且struct...和final》:https://www.cnblogs.com/whlook/p/6501918.html 28、拷贝初始化和直接初始化 当用于类类型对象时,初始化拷贝形式和直接形式有所不同:直接初始化直接调用与实参匹配构造函数...例如,此处如果是compare(3,5),则调用普通模板,若为compare(“hi”,”haha”)则调用特例化版本(因为这个cosnt char*相对于T,更匹配实参类型),注意二者函数语句不一样了...A中fun函数 return 0; } 36、C++多态如何实现 C++多态性,一言以蔽之就是: 在基类函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象实际类型来调用相应函数...子类1继承并重写了基类函数,子类2继承基类但没有重写基类函数,从结果分析子类体现了多态性,那么为什么会出现多态性,其底层原理是什么?这里需要引出虚表和虚基表指针概念。

2.5K40

C++核心准则T.69:在模板内部,不要进行不受限制成员函数调用

unqualified non-member function call unless you intend it to be a customization point T.69:在模板内部,不要进行不受限制成员函数调用...特征通常是一种用于计算类型类型别名,一种用于求值常量表达式函数,或者用于针对某个用户类型特化传统特征模板。...如果你想用依赖模板类型参数值t调用你自己帮助函数helper(t),将它放入::detail命名空间并用detail::helper(t)对调用进行限定;如果一个帮助函数处于t类型可以被触发命名空间...,不受限调用会成为一个定制点;这会引起意外调用非约束函数模板等问题。...在模板同一个命名空间中,如果存在一个同名非成员函数,标记模板中针对传递受影响类型变量成员函数不受限调用

1.1K10

《逆袭进大厂》之C++篇49问49答

:struct是用户自定义数据类型(UDT);C++中struct是抽象数据类型(ADT),支持成员函数定义,(C++struct能继承,能实现多态) C中struct是没有权限设置,且struct...和final》:https://www.cnblogs.com/whlook/p/6501918.html 28、拷贝初始化和直接初始化 当用于类类型对象时,初始化拷贝形式和直接形式有所不同:直接初始化直接调用与实参匹配构造函数...例如,此处如果是compare(3,5),则调用普通模板,若为compare(“hi”,”haha”)则调用特例化版本(因为这个cosnt char*相对于T,更匹配实参类型),注意二者函数语句不一样了...A中fun函数 return 0; } 36、C++多态如何实现 C++多态性,一言以蔽之就是: 在基类函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象实际类型来调用相应函数...子类1继承并重写了基类函数,子类2继承基类但没有重写基类函数,从结果分析子类体现了多态性,那么为什么会出现多态性,其底层原理是什么?这里需要引出虚表和虚基表指针概念。

1.9K10

C++进阶学习】第四弹——多态——迈向C++更深处关键一步

前言: 在前面我们已经学习了C++中继承相关知识,已经体会到C++在与C语言对比中便捷性,但是有一些问题并没有被解决,比如继承中如何使不同派生类公用基类一个函数,这就需要多态知识,而且...2、通过基类指针或引用调用函数多态通常通过基类指针或引用来实现。当使用基类指针或引用指向派生类对象时,调用函数将根据对象实际类型(而不是指针或引用类型)来决定调用哪个函数。...,所以在C++11中提供了这两个关键字来帮助我们更容易实现多态 override 关键字 override 关键字用于在派生类中明确地指示一个成员函数是重写了基类中函数。...总结 override 和 final 是C++11中用于控制虚函数行为两个关键字。override 用于指示派生类中成员函数是重写了基类函数,而 final 用于阻止类被继承或虚函数被重写。...四、总结 以上就是C++多态基本知识,总的来说并不是很难,但我们还没有多态底层原理——虚函数问题,这个与前面继承那个类似,都是很重要知识点,这些我们放在后面统一讲解。

10410

C++基础 模板(Templates)

这个通用函数就称为函数模板。在调用函数时系统会根据实参类型来取代模板中虚拟类型,从而实现了不同函数功能。...,typename是定义形式参数关键字,他可以 是class代替,typename和class没有区别的,中参数就是模板形参,模板形参和函数形参很像,但是模板形参不能为空 函数模板调用 myswap...函数模板和普通函数在一起,调用规则: 函数模板可以像普通函数一样被重载 C++编译器优先考虑普通函数 如果函数模板可以产生一个更好匹配,那么选择模板 可以通过空模板实参列表语法限定编译器只通过模板匹配...类模板 允许用户为类定义一种模式,使得类中某些数据成员、默认成员函数参数、某些成员函数返回值,能够取任意类型(包括系统预定义和用户自定义)。...如果一个类中数据成员数据类型不能确定,或者是某个成员函数参数或返回值类型不能确定,就必须将此类声明为模板,它存在不是代表一个具体、实际类,而是代表着一类类。

65130

2W五千字C++基础知识整理汇总

C++ 标准库,提供了大量函数用于操作文件、字符串等。 标准模板库(STL),提供了大量方法,用于操作数据结构等。 C++标准 对一门编程语言来说,遵循统一标准是必需。...类用于指定对象形式,它包含了数据表示法和用于处理数据方法。类中数据和方法称为类成员函数在一个类中被称为类成员C++ 类定义 定义一个类,本质上是定义一个数据类型蓝图。...当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态C++ 多态意味着调用成员函数时,会根据调用函数对象类型来执行不同函数。...,调用函数 area() 被编译器设置为基类中版本,这就是所谓静态多态,或静态链接 - 函数调用在程序执行前就准备好了。...,有几点要注意: push_back( ) 成员函数向量末尾插入值,如果有必要会扩展向量大小。

2.6K10

一文让你学完C++,干货收藏!!!

C++ 标准库,提供了大量函数用于操作文件、字符串等。 标准模板库(STL),提供了大量方法,用于操作数据结构等。 C++标准 对一门编程语言来说,遵循统一标准是必需。...类用于指定对象形式,它包含了数据表示法和用于处理数据方法。类中数据和方法称为类成员函数在一个类中被称为类成员C++ 类定义 定义一个类,本质上是定义一个数据类型蓝图。...当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态C++ 多态意味着调用成员函数时,会根据调用函数对象类型来执行不同函数。...,调用函数 area() 被编译器设置为基类中版本,这就是所谓静态多态,或静态链接 - 函数调用在程序执行前就准备好了。...,有几点要注意: push_back( ) 成员函数向量末尾插入值,如果有必要会扩展向量大小。

3.3K20

一文让你学完C++,干货收藏!!!

C++ 标准库,提供了大量函数用于操作文件、字符串等。 标准模板库(STL),提供了大量方法,用于操作数据结构等。 C++标准 对一门编程语言来说,遵循统一标准是必需。...类用于指定对象形式,它包含了数据表示法和用于处理数据方法。类中数据和方法称为类成员函数在一个类中被称为类成员C++ 类定义 定义一个类,本质上是定义一个数据类型蓝图。...当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态C++ 多态意味着调用成员函数时,会根据调用函数对象类型来执行不同函数。...,这就是所谓静态多态,或静态链接 - 函数调用在程序执行前就准备好了。...,有几点要注意: push_back( ) 成员函数向量末尾插入值,如果有必要会扩展向量大小。

2.9K3029

一文让你学完C++,干货收藏!!!

C++ 标准库,提供了大量函数用于操作文件、字符串等。 标准模板库(STL),提供了大量方法,用于操作数据结构等。 C++标准 对一门编程语言来说,遵循统一标准是必需。...类用于指定对象形式,它包含了数据表示法和用于处理数据方法。类中数据和方法称为类成员函数在一个类中被称为类成员C++ 类定义 定义一个类,本质上是定义一个数据类型蓝图。...当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态C++ 多态意味着调用成员函数时,会根据调用函数对象类型来执行不同函数。...() 被编译器设置为基类中版本,这就是所谓静态多态,或静态链接 - 函数调用在程序执行前就准备好了。...,有几点要注意: push_back( ) 成员函数向量末尾插入值,如果有必要会扩展向量大小。

2.3K20

C++学习知识点

OOP面向对象程序设计多态理解 答:多态:同一操作作用于不同对象,可以有不同解释,产生不同执行结果。在运行时,可以通过指向基类指针,来调用实现派生类中方法。...C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模板。 2.类特征 答:封装、继承和多态。 3. C++与C#区别 (1)C++中类申明时,不能给数据成员赋值,通常使用构造函数来完成。...(5)C++中有指针类型,而C#中没有指针类型,C#中delegate类型本质上就是C++函数指针,通俗来说就是类型化了函数指针,用于函数回调。 4....使用const修饰引用表示常引用,即引用变量是常变量,这样一来,是防止在函数中对常引用修改,多用于修饰类常对象。如果将值调用形参声明为常量,则没有多大使用价值。...多态理解 多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口多种不同实现方式即为多态C++接口就是类成员函数

1.7K20

Java 学习笔记(7)——接口与多态

上一篇说了Java面向对象中继承关系,在继承中说到:调用对象中成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态存在,具体调用方法需要根据new出来对象决定,这篇主要描述是Java...中多态以及利用多态形成接口 多态 当时在学习C++时,要使用多态需要定义函数为virtual,也就是虚函数。...类中存在虚函数时,对象会有一个虚函数头指针,虚函数表会存储虚函数地址,在使用父类指针或者引用来调用方法时会根据虚函数表中函数地址来调用函数,会形成多态。...当时学习C++时对多态有一个非常精炼定义:基类指针指向不同派生类,其行为不同。这里行为不同指的是调用同一个虚函数时,会调用不同派生类函数。...deviceType 和 Storage 中变量 deviceType 都匹配 ,也就是说Java中仍然没有完全避免冲突问题。

75840

CC++面试常问题集(2)

内联成员函数  内联函数是为了在代码中直接展开,减少函数调用花费代价,并且inline函数在编译时被展开,虚函数是为了实现多态,是在运行时绑定。因此显然内联函数多态特性相违背。 5....友元函数  友元函数不属于类成员函数,不能被继承。对于没有继承特性函数没有函数说法。 9、多态,虚函数,纯虚函数?...多态 同一操作作用于不同对象,可以有不同解释,产生不同执行结果,这就是多态性。简单说:就是用基类指针或引用指向子类对象。...,虚函数C++用于实现多态机制。...它们都可用于申请动态内存和释放内存; new/delete会调用对象构造/析构函数, 而malloc/free只会分配/释放内存; malloc与free是C++/C语言标准库函数,new/delete

1.1K10
领券