Qt 为什么函数setMinimumSize()可以接受QSize作为其参数?

Qt 为什么函数setMinimumSize()可以接受QSize作为其参数?,qt,Qt,以上代码可以正常运行。但是在Qt的帮助下,有3种类型的setMinimumSize() 在这里,我认为第二种类型被执行。但是它需要一个QSize&作为它的参数,为什么在代码中,它可以接受一个QSize?实际上只有两种类型的setMinimumSizeQSize minimumSize()const是一个访问器,返回当前最小大小。它不允许您设置最小尺寸 第一个,void setMinimumSize(const QSize&),采用一个QSize,它本质上只是一个打包在一起的宽度和高度。它接受QS

以上代码可以正常运行。但是在Qt的帮助下,有3种类型的setMinimumSize()


在这里,我认为第二种类型被执行。但是它需要一个
QSize&
作为它的参数,为什么在代码中,它可以接受一个
QSize

实际上只有两种类型的setMinimumSize
QSize minimumSize()const
是一个访问器,返回当前最小大小。它不允许您设置最小尺寸

第一个,
void setMinimumSize(const QSize&)
,采用一个QSize,它本质上只是一个打包在一起的宽度和高度。它接受QSize by const引用,因为这是Qt函数接受对象的标准方式。有关他们为什么会遵循这种做法的详细信息,请参阅

第二个,
void setMinimumSize(int minw,int minh)
将宽度和高度作为一对参数


两者之间没有区别。为了方便起见,它们只提供了两个函数,以防您已经有一个QSize要传递给它,或者您已经有了一对整数。您的示例是前者的一个例子,它应该完全按照您的预期工作。

我不确定我是否完全理解您的问题,如果您所要求的只是将参数作为常量SomeType&传递给函数与只传递SomeType之间的区别,关于这一点有很多文档,但这里有一个关于何时使用的简要概述

QSize   minimumSize () const
void    setMinimumSize ( const QSize & )
void    setMinimumSize ( int minw, int minh )
复制是一项昂贵的操作时,(我所说的昂贵是指…复制会消耗大量CPU资源和处理能力),就这样传递参数

当复制不是一项昂贵的操作时使用。通常,这通常用于基本类型和写时复制对象

QSize   minimumSize () const
void    setMinimumSize ( const QSize & )
void    setMinimumSize ( int minw, int minh )
myFunction(const SomeType &)
myFunction(type)