C++上机题目疑问

#include<iostream>#include<iomanip>usingnamespacestd;classMiniString{public:friendost... #include <iostream>
#include <iomanip>
using namespace std;
class MiniString
{public:
friend ostream &operator<< ( ostream &output, const MiniString &s ) //重载流插入运算符
{ output << s.sPtr; return output; }
friend istream &operator>>( istream &input, MiniString &s ) //重载流提取运算符
{ char temp[ 100 ]; // 用于输入的临时数组
temp[0] = '\0'; // 初始为空字符串
input >> setw( 100 ) >> temp;

int inLen = strlen(temp); //输入字符串长度
if( inLen != 0)
{
s.length = inLen; //赋长度
if( s.sPtr!= 0) delete []s.sPtr; // 避免内存泄漏
s.sPtr = new char[ s.length + 1 ];
strcpy( s.sPtr, temp ); // 如果s 不是空指针,则拷贝内容
}
else s.sPtr[ 0 ] = '\0'; // 如果s 是空指针,则为空字符串
return input;
}
//*************333***********
MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0 ) // 转换功能默认构造函数
{ sPtr = new char[ length + 1 ]; // 分配内存
if ( s != 0 ) strcpy( sPtr, s ); // 如果s 不是空指针,则拷贝内容
else sPtr[ 0 ] = '\0'; // 如果s 是空指针,则为空字符串
}
~MiniString(){ delete [] sPtr;}

MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0 这句是什么东西。。没见过 求高人解答
展开
 我来答
百度网友ae68e87d3
2012-09-17
知道答主
回答量:15
采纳率:0%
帮助的人:12.6万
展开全部
MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0
当引用这个对象时,先将字符串指针s 指向一段字符串,然后在进行三目运算。
这种写法是C++特有的,见多了就慢慢习惯了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
d5378295
2012-09-16 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:38.3万
展开全部
MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0

用初始化列表来初始化成员length,这个输出花过程中用了一个三木运算符 expr0?expr1:expr2
expr0!=0 执行expr1 否则expr2
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bbyypp327408
2012-09-15
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
你在C语言书上看一下那个三目运算符,就知道是什么意思了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式