C语言中协变返回值类型究竟是如何实现和定义的?

2026-04-12 11:330阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

C语言中协变返回值类型究竟是如何实现和定义的?

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

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

前言

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

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

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

阅读全文

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

C语言中协变返回值类型究竟是如何实现和定义的?

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

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

前言

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

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

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

阅读全文