美文网首页面试
C++面试题-编程

C++面试题-编程

作者: 雲凌禹 | 来源:发表于2017-06-20 11:43 被阅读0次

    1、不调用C++/C的字符串库函数,编写strcpy函数

    char *strcpy(char *pDest, const char *psrc) {
        assert((pDest != NULL)&&(psrc != NULL));
        char *address = pDest;
        while ( (*pDest++ = *psrc++) != '\0' )
        {
        }
        return address;
    }
    

    上述strcpy能够把psrc的内容复制给pdest,为什么还要返回指针地址?
    为了实现链式表达式:比如

    int length=strlen(strcpy(strDest,“helloworld”));
    

    2、编写类String的普通构造函数、拷贝构造函数、析构函数和赋值函数。

    class String{
    public:
        String(const char* str = NULL) //普通构造函数 
        {
            if ( NULL == str )
            {
                m_data = new char[1];
                *m_data = '\0';
            }
            else {
                int nLen = strlen(str);
                if (m_data != NULL)
                {
                    delete[]m_data;
                    m_data = NULL;
                }
                m_data = new char[nLen + 1];
                strcpy(m_data, str);            
            }
        }
    
        String(const String &other) //拷贝构造函数
        {
            int nLen = strlen(other.m_data);
            m_data = new char[nLen + 1];
            strcpy(m_data, other.m_data);
    
        }
    
        ~String() //析构函数
        {
            if ( NULL != m_data )
            {
                delete []m_data;
                m_data = NULL;
            }
        }
    
        String &operator=(const String &other) //赋值函数
        {
            if (this == &other )
            {
                return *this;
            }
            delete[]m_data;
            int nLen = strlen(other.m_data);
            m_data = new char[nLen + 1];
            strcpy(m_data, other.m_data);
            return *this;
        }
    
    private:
        char *m_data;
    };
    

    3、在不使用第三方参数的情况下,交换两个参数i,j的值

    void main()
    {
           int i = 1;
           int j = 2;
           i = i + j;
           j = i - j;
           i = i - j;
    }
    

    相关文章

      网友评论

        本文标题:C++面试题-编程

        本文链接:https://www.haomeiwen.com/subject/xouoqxtx.html