问题1:写出BOOL flag与“零值”比较的if语句
解答:if(flag)或者if(!flag);
如下写法均属不良风格:
if(flag == TRUE)
if(flag == 1)
if(flag==FALSE)
if(flag==0)
问题2:写出char *p与“零值”比较的if语句
解答:if(p == NULL)或者if(p != NULL)
如下写法均属不良风格:
if(p==0)
if(p!=0)
if(p)
if(!p)
问题3:在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”
解答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数原型是:void ace(int x, int y);
该函数被C编译器编译后在库中的名字是_ace,而C++编译器则会产生像_ace_int_int之类的名字。
因此,C++提供了C连接交换指定符号extern “C”来解决名字匹配问题。
问题4:已知strcpy函数原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
1)不调用C/C++的字符串库函数,请编写函数strcpy
2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值
解答:
1)
char *strcpy(char *strDest, const char *strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));
char *address = strDest;
while((*strDest++ = *strSrc++) != '/0')
{
}
return address;
}
2)为了实现链式表达式,例如:
int length = strlen(strcpy(strDest, "SEE YOU IN ANOTHER LIFE BROTHER!"));
问题5:已知类String的原型为:
class String
{
public:
String(const char *str = NULL); //普通构造函数
String(const String &other); //拷贝构造函数
~String(void); //析构函数
String & operator=(const String &other); //赋值函数
private:
char *m_data; //用于保存字符串
};
请编写String的上述4个函数
解答:
//普通构造函数
String::String(const char *str)
{
if(str == NULL)
{
m_data = new char[1]; //若能加new是否成功的判断则更好
m_data = '/0';
}
else
{
int length = strlen(str);
m_data = new char[length + 1];
strcpy(m_data, str);
}
}
//拷贝构造函数
String::String(const String &other)
{
int length = strlen(other.m_data);
m_data = new char[length + 1];
strcpy(m_data, other.m_data);
}
//赋值函数
String & String::operator=(const String &other)
{
//检查自赋值
if(this == other)
return *this;
//释放原有的内存资源
delete[] m_data;
//分配新的内存资源,并复制内容
int length = strlen(other.m_data);
m_data = new char[length + 1];
strcpy(m_data, other.m_data);
//返回本对象的引用
return *this;
}
//析构函数
String::~String(void)
{
delete[] m_data;
//由于m_data是内部数据类型,也可以写出delete m_data
}
分享到:
相关推荐
ASCE7-10-建筑物和其他结构最小设计荷载-中文版.pdf
ASCE-7-2005-美国荷载规范-(中文版)
asce1885-blogasce1885的博客
第三代benchmark模型,可用于主动控制算法的比较
此为ASCE的第三代基准模型代码,可供土木工程领域学者使用。
ANSI ASCE CI 71-21 Identifying, Quantifying, and Proving Loss of Productivity.pdf
PHASE II OF THE ASCE BENCHMARK STUDY ON SHM
ASCE_7-10美国建筑荷载规范(中文版);.pdf
ASCE是土木工程学会的重要期刊。国外期刊投稿主要是latex,该期刊有Latex的投稿模板。
957/5000 结构安全和结构动力学有许多领域,通常需要计算随机变量函数的前几个统计矩。 通常的近似是泰勒展开法。 这种方法需要计算导数。 为了避免导数的计算,已经提出了概率矩的点估计。 然而,准确度非常低,...
土木工程几个著名期刊ASCE和Science direct中输出格式
希望大家能用得着这个东西!检索时很有用啊
国ASCE 7-10 《建筑物和其他结构最小设计荷载》 (ASCE 7-10 “Minimum Design Loads for Buildings and Other Structures”)主要内容翻译与介绍 目录 0 规范内容简介1 1 总则7 1.1 适用范围7 1.2 定义和解释7 1.3 ...
mfc工程,一个可以编辑,选择能实现众多功能的list控件示范工程,
考虑3种对称损伤模式和1种非对称损伤模式,对由国际结构控制协会与美国土木工程学会(IASC-ASCE)提出的健康监测Benchmark模型结构第二阶段有斜撑的情况进行模拟分析。结果表明:该方法能够有效地识别出结构损伤单元...
ASCE全文数据库培训iGroup公司.ppt
eclipse 配置AmaterasUML时需要的3个jar 包,以及配置文档 http://blog.csdn.net/asce1885/article/details/40744163
asce-common 可以重用并轻松集成到任何项目中的android通用代码
针对美国IASC-ASCE的结构健康监测科研组提出的基准结构进行结构自振频率识别研究.神经网络训练时使用的数据为有限元程序计算所得出,将有损伤结构在环境激励下某点的加速度响应,通过快速傅立叶变换得到的离散频率响应...
为使我国工程设计人员了解美国规范的设计方法和技术措施提供参考,基于我国(GB50003-2001)《砌体结构设计规范》和美国ACI530-02/ASCE5-02/TMS402-02(砌体结构建筑规范》的设计规定,比较了中美两国设计规范中配筋...