C语言中Covariant返回值类型是如何定义和使用的?

更新于
2026-10-10 16:08:39
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计878个文字,预计阅读时间需要4分钟。

C语言中Covariant返回值类型是如何定义和使用的?

目录+前言+什么是协变返回值类型(Covariant Return Type)+协变返回值类型(Covariant Return Type)的作用+前言+C++中当子类覆盖(override)父类虚函数时,子类函数的返回值类型可以和父类函数的返回值类型不必须一致

目录
  • 前言
  • 什么是协变返回值类型(Covariant)
  • 协变返回值类型(Covariant)的作用

C语言中Covariant返回值类型是如何定义和使用的?

前言

C++中当子类覆写(override)父类虚函数时,子类函数的返回值类型可以和父类函数的返回值类型不一致吗?
先说结论:可以,但当且仅当它们的返回值类型是协变返回值类型(Covariant)时可以。C++中gcc从3.4开始支持这一特性。

什么是协变返回值类型(Covariant)

函数的协变返回值类型指的是子类中的成员函数的返回值类型不必严格等同与该函数所重写的父类中的函数的返回值类型,而可以是更 “狭窄” 的类型。C++/Java等面向对象编程语言均支持协变返回值类型。

阅读全文

本文共计878个文字,预计阅读时间需要4分钟。

C语言中Covariant返回值类型是如何定义和使用的?

目录+前言+什么是协变返回值类型(Covariant Return Type)+协变返回值类型(Covariant Return Type)的作用+前言+C++中当子类覆盖(override)父类虚函数时,子类函数的返回值类型可以和父类函数的返回值类型不必须一致

目录
  • 前言
  • 什么是协变返回值类型(Covariant)
  • 协变返回值类型(Covariant)的作用

C语言中Covariant返回值类型是如何定义和使用的?

前言

C++中当子类覆写(override)父类虚函数时,子类函数的返回值类型可以和父类函数的返回值类型不一致吗?
先说结论:可以,但当且仅当它们的返回值类型是协变返回值类型(Covariant)时可以。C++中gcc从3.4开始支持这一特性。

什么是协变返回值类型(Covariant)

函数的协变返回值类型指的是子类中的成员函数的返回值类型不必严格等同与该函数所重写的父类中的函数的返回值类型,而可以是更 “狭窄” 的类型。C++/Java等面向对象编程语言均支持协变返回值类型。

阅读全文