社区
C语言
帖子详情
有关重载函数?
doublejie
2003-03-07 12:40:35
第一组:
void dribble (char * bits);
void dribble (const char * bits);
是重载函数吗?
第二组:
void dribble (char * bits);
void dribble (const char * cbits);
是重载函数吗?
...全文
30
20
打赏
收藏
有关重载函数?
第一组: void dribble (char * bits); void dribble (const char * bits); 是重载函数吗? 第二组: void dribble (char * bits); void dribble (const char * cbits); 是重载函数吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hot1985
2003-03-09
打赏
举报
回复
mark
doublejie
2003-03-09
打赏
举报
回复
等待专家,我已晕了:(
luckyum
2003-03-08
打赏
举报
回复
我也加一个
char& position(int,int);
char position(int,int)const;
这个重载函数很有用。
cout<<position(4,4);
position(4,4)="+";
可他是怎么判断用哪个呢?
WeltactXp
2003-03-07
打赏
举报
回复
都不是
因为只跟函数签名有关,况且我又记得const不属于签名里面的东西
但愿我没有记错给你带来混淆
ckacka
2003-03-07
打赏
举报
回复
都是
重载和形式参数名字没有关系,而是形式参数的类型
JoshuaLi
2003-03-07
打赏
举报
回复
第一组:
void dribble (char *);
void dribble (const char *);
是重载函数吗?
第二组:
void dribble (char *);
void dribble (const char *);
是重载函数吗?
//
都是,既然是原型就可以去掉参数名
seablue
2003-03-07
打赏
举报
回复
楼上说的没错,是不是重载我有点模糊
但调试时的确没有报错,,重载只重类型,个数,只要编译器能识别就行
但这样定义的意议不是很大
WeltactXp
2003-03-07
打赏
举报
回复
晕喽
tjhgltt
2003-03-07
打赏
举报
回复
up
jinyongzhi
2003-03-07
打赏
举报
回复
chinajiji(菜鸟叽叽):
这个也是重载:
void f(int);
void f(int)const;
class Base{};
class Derived : public Base{};
void f() throw(Base);
void f() throw(Derived);
上面那两组我觉得都不是重载,可调试的时候都没有报错,是什么原因?
jinyongzhi
2003-03-07
打赏
举报
回复
chinajiji(菜鸟叽叽)
没讲,你说说看
另外,你还没说你举的那两个例子到底是不是重载呢,说说原因。
jinyongzhi
2003-03-07
打赏
举报
回复
void dribble (char* );
void dribble (const char*);
是重载,换成引用也是,但如果改成
void dribble (char);
void dribble (const char);
就不是重载了,因为参数是值传递,仅仅是传递给函数一个备份,const的意义不大。
以下是《c++ primer》的原话:
当一个参数类型是const或volatile时,在识别函数声明是否相同时并不考虑const和volatile修饰符。
//声明了同一函数:
void f( int );
void f( const int );
参数是const,这只跟函数的定义有关系:它意味着,函数体内的表达式不能改变参数的值。但是,对于按值传递的参数,这对函数的用户是完全透明的:用户不会看到函数对按值传递的实参的改变。
……
如果把const或volatile应用在指针或引用参数指向的类型上,则在判断函数声明是否相同时,就要考虑const和volatile修饰符。
//声明了不同函数:
void f( int* );
void f( const int* );
//声明了不同函数:
void f( int& );
void f( const int& );
chinajiji
2003-03-07
打赏
举报
回复
jinyongzhi(__Intel Inside__)
的那个回复很好!学习!
但C++ primer中是否讲了:
void dribble (char);
void dribble (const char);
就不是重载了
而:
void f( int* );
void f( const int* );
是重载的最根本的原因了吗?
如果讲了,请贴出来看一看.
如果没讲,我来解释一下,看对不对?
chinajiji
2003-03-07
打赏
举报
回复
jinyongzhi(__Intel Inside__)
看法不妥,
const object calling const member function, non-const object calling non-const member function.
jinyongzhi
2003-03-07
打赏
举报
回复
我记得,重载只看函数名跟参数列表,返回值根本不影响重载
void f(int);
void f(int)const;
虽然重载没有报错,但对象调用时却只能调用void f(int)。
mare
2003-03-07
打赏
举报
回复
重载和形式参数名字没有关系,而const也认为是署名的一部分
所以我认为两个都不是重置,那么应该跟第一位一样吧
chinajiji
2003-03-07
打赏
举报
回复
这个也是重载:
void f(int);
void f(int)const;
这个不是:
int* f(int);
const int* f(int);
//嘿嘿,看看下面两个是不是重载:
class Base{};
class Derived : public Base{};
void f() throw(Base);
void f() throw(Derived);
chinajiji
2003-03-07
打赏
举报
回复
是重载,const 是参数类型的一个组成部分.而参数名字更本与重载无关.形参名不要都可以.
tjhgltt
2003-03-07
打赏
举报
回复
我想你的问题很矛盾,即然用了CONST保留为什么还要重载它?
doublejie
2003-03-07
打赏
举报
回复
楼上的两位:我晕!
重载和形式参数的名字是没有关系,但是和const有没有关系?
Java中,什么是构造
函数
?什么是构造
函数
重载
?
当新对象被创建的时候,构造
函数
会被调用。每一个类都有构造
函数
。在程序员没有提供构造
函数
的情况下,Java编译器会为这个类创建一个默认的构造
函数
。Java中的构造
函数
重载
和方法
重载
很类似,可以为一个类创建多个构造
函数
。每一个构造
函数
都必须有它自己唯一的参数列表...
运算符
重载
之成员运算符
重载
成员运算符
重载
函数
成员运算符
重载
函数
,即把运算符
重载
函数
定义为某个类的成员
函数
。 1、定义成员运算符
重载
函数
的语法形式 (1)在类的内部,定义成员运算符
重载
函数
的格式如下:
函数
类型 operator 运算符(形参表){
函数
体 } (2)成员运算符
重载
函数
也可以在类中声明成员
函数
的原型,在类外定义。 在类内,声明成员运算符
重载
函数
原型的格式如下: class X{
函数
类型 operat...
Java中什么是构造
函数
?什么是构造
函数
重载
?
无参构造
函数
用于创建一个没有提供具体信息的默认对象,带参数的构造
函数
用于根据提供的参数创建对象,而构造
函数
重载
的形式允许根据提供的参数的不同进行灵活的对象初始化。通过构造
函数
重载
,可以根据不同的参数来创建对象,以满足不同的初始化需求。构造
函数
重载
的优势在于可以根据不同的需求提供多种初始化方式,使得对象的创建更加灵活。它允许使用者根据自己的需要选择合适的构造
函数
,以便在创建对象时提供不同的初始化值。使用构造
函数
和构造
函数
重载
,我们可以根据不同的场景和需求来创建不同初始化方式的对象,并提供灵活性和方便性。
【C++】什么是
函数
重载
?为什么需要?怎么实现?
相对于C语言的
函数
,C++增加了
重载
(overloaded)、内联(inline)、const、vertual四种机制。其中
重载
和内联机制,既可用于全局
函数
也可以用于类的成员
函数
,const和virtual机制仅用于类的成员
函数
。在c++程序中,而可以将语义、功能相似的几个
函数
用同一个名字表示,即
函数
重载
函数
名相同(同一个作用域),参数列表不一样。(同名不同参)注意:并不是两个
函数
名字相同就能构成
重载
。全局
函数
和类的成员
函数
同名不算
重载
,因为
函数
的作用域不同。
java中,什么是构造
函数
?什么是构造
函数
重载
?什么是复制构造
函数
?
当新对象被创建的时候,构造
函数
会被调用。每一个类都有构造
函数
。在程序中没有给类提供构造
函数
的情况下,Java编译器会为这个类创建一个默认的构造
函数
Java中构造
函数
重载
和方法
重载
很相似。可以为一个类创建多个构造
函数
。每一个构造
函数
必须有它自己唯一的参数列表。 Java不支持像C++那样的复制构造
函数
,这个不同点是因为如果你不自己写构造
函数
的情况下,Java不会创建默认的复制构造
函数
。 Ja...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章