返回信息流如果有string类有三个构造函数,分别是:
String();
String( const char* );
String( const String& );
则,当我们写这个语句时String str2( "a string literal" );
为什么调用的是第二个构造函数,而不是第三个?
这是一条镜像帖。来源:北邮人论坛 / cpp / #32066同步于 2009/11/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于函数重载
yexiangliu
2009/11/25镜像同步20 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
前两个是构造函数,第三个是复制构造函数。
String str1( "a string literal" );
String str2=str1; //这时会调用第三个。
虽然"a string literal"可以构造string类型的变量,但其本身应该是char *。
【 在 bingshan0424 的大作中提到: 】
: 前两个是构造函数,第三个是复制构造函数。
: String str1( "a string literal" );
: String str2=str1; //这时会调用第三个。
: ...................
复制构造函数吗?没看出来。
为什么其本身是char *?
【 在 bingshan0424 的大作中提到: 】
: 前两个是构造函数,第三个是复制构造函数。
: String str1( "a string literal" );
: String str2=str1; //这时会调用第三个。
: ...................
呵呵,对的
不过字符串类型貌似是char *
【 在 he1l0 的大作中提到: 】
: "a string literal"的类型就是const char*
: 这种情况编译器不会confused
哦,好,记住。
【 在 he1l0 的大作中提到: 】
: "a string literal"的类型就是const char*
: 这种情况编译器不会confused
第二个更match
【 在 yexiangliu (NINA) 的大作中提到: 】
: 如果有string类有三个构造函数,分别是:
: String();
: String( const char* );
: ...................
【 在 FadeToBlack 的大作中提到: 】
: 第二个更match
这不是match的问题...这是string类的定义, 第三个是拷贝构造函数