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 这句是什么东西。。没见过 求高人解答 展开
#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 这句是什么东西。。没见过 求高人解答 展开
展开全部
MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0
当引用这个对象时,先将字符串指针s 指向一段字符串,然后在进行三目运算。
这种写法是C++特有的,见多了就慢慢习惯了。
当引用这个对象时,先将字符串指针s 指向一段字符串,然后在进行三目运算。
这种写法是C++特有的,见多了就慢慢习惯了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MiniString( const char *s = """" ): length(( s != 0 ) ? strlen( s ) : 0
用初始化列表来初始化成员length,这个输出花过程中用了一个三木运算符 expr0?expr1:expr2
expr0!=0 执行expr1 否则expr2
用初始化列表来初始化成员length,这个输出花过程中用了一个三木运算符 expr0?expr1:expr2
expr0!=0 执行expr1 否则expr2
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在C语言书上看一下那个三目运算符,就知道是什么意思了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询