• 欢迎访问(88简历网),记住本站网址:www.88jianli.com
当前位置:88简历网简历大全面试·笔试笔试题目创维笔试题目(精华)» 正文

创维笔试题目(精华)

[10-20 21:24:11]   来源:http://www.88jianli.com  笔试题目   阅读:280

概要: char *address = strDest; // 2分 while( (*strDest++ = * strSrc++) != ‘/0’ ) // 2分 NULL ; return address ; // 2分} (2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值? 答:为了实现链式表达式。 // 2分 例如 int length = strlen( strcpy( strDest, “hello world”) ); 六、编写类String的构造函数、析构函数和赋值函数(25分) 已知类String的原型为: class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数

创维笔试题目(精华),标签:笔试题目大全,http://www.88jianli.com
    char *address = strDest;                    // 2分
    while( (*strDest++ = * strSrc++) != ‘/0’ )     // 2分
       NULL ;
    return address ;                           // 2分
}

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。 // 2分

例如 int length = strlen( strcpy( strDest, “hello world”) );


六、编写类String的构造函数、析构函数和赋值函数(25分)

已知类String的原型为:

    class String
    {
      public:
        String(const char *str = NULL); // 普通构造函数
        String(const String &other);         // 拷贝构造函数
        ~ String(void);                      // 析构函数
        String & operate =(const String &other);     // 赋值函数
      private:
        char     *m_data;                 // 用于保存字符串
    };
      请编写String的上述4个函数。
标准答案:

// String的析构函数

       String::~String(void)                // 3分
{

    delete [] m_data;                     
// 由于m_data是内部数据类型,也可以写成 delete m_data;

       }
       // String的普通构造函数            
       String::String(const char *str)       // 6分
{

    if(str==NULL)                          
    {
      m_data = new char[1];     // 若能加 NULL 判断则更好
       *m_data = ‘/0’;                     
    }                                          
    else
    {
       int length = strlen(str);           
       m_data = new char[length+1];   // 若能加 NULL 判断则更好      
       strcpy(m_data, str);               
    }
}

// 拷贝构造函数

    String::String(const String &other)    // 3分
    {   
    int length = strlen(other.m_data);
    m_data = new char[length+1];       // 若能加 NULL 判断则更好   
    strcpy(m_data, other.m_data);         
}

// 赋值函数

    String & String:perate =(const String &other)     // 13分
    {   
       // (1) 检查自赋值                      // 4分
       if(this == &other)
           return *this;



// (2) 释放原有的内存资源 // 3分

       delete [] m_data;



       // (3)分配新的内存资源,并复制内容 // 3分
    int length = strlen(other.m_data);
    m_data = new char[length+1];          // 若能加 NULL 判断则更好
       strcpy(m_data, other.m_data);



       // (4)返回本对象的引用             // 3分
       return *this;
}

上一页  [1] [2] 


Tag:笔试题目笔试题目大全面试·笔试 - 笔试题目
《创维笔试题目(精华)》相关文章