这是函数重载的问题吗?

xunua 2005-09-05 02:12:29
我用VB做COM组件,想做一个这样的方法,就是调用aaa方法时,可以填一个参数,也可填两个参数,这在C++里面是不是叫函数重载啊?
Public Function aaa(ByVal str)

End Function

Public Function aaa(ByVal str, ByVal title)

End Function

我这样写,可是编译的时候提示“发现二义性的名称:aaa”
请问,我该怎么做呢?
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwhch2004 2005-09-05
  • 打赏
  • 举报
回复
必须使用Optional关键字
xunua 2005-09-05
  • 打赏
  • 举报
回复
是不是如果前面的参数用了Optional,后面的参数也必须用Optional?
否则会看到VB中有红色提示
igxk 2005-09-05
  • 打赏
  • 举报
回复
可以使用 OPTIONAL 关键字来达到这个目的。
WuYunpeng 2005-09-05
  • 打赏
  • 举报
回复
Public Function aaa(ByVal str As String, Optional ByVal title As String="") As String
可以加上默认值
xunua 2005-09-05
  • 打赏
  • 举报
回复
谢谢。
不过,VB6是不是不支持函数重载啊?
wangtopcool 2005-09-05
  • 打赏
  • 举报
回复
可以在第二个参数定义前加Optional,则第二个参数是可选的
Public Function aaa(ByVal str, Optional ByVal title)

End Function
northwolves 2005-09-05
  • 打赏
  • 举报
回复
关键词:Optional

Public Function aaa(ByVal str As String, Optional ByVal title As String) As String
If title = "" Then
aaa = Replace(String(10, "x"), "x", str)
Else
aaa = str & vbCrLf & title
End If
End Function

Private Sub Command1_Click()
MsgBox aaa("abc", "123")
MsgBox aaa("abc")
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧