C/C++:关于类的构造函数,析构函数,拷贝构造函数,赋值函数

原创
2015/04/23 19:48
阅读数 99

(环境:Win7 64位, C++ builder 2010)

C/C++中定义类的时候,如果不显示的指定类的构造函数,析构函数,拷贝构造函数,赋值函数,则编译器会自动生成默认的版本。

实际应用时,推荐全部自定义,便于完全掌控类。对于不常用的拷贝构造函数和赋值函数,可简单定义为私有成员函数,避免外部使用此类时误用。示例代码如下:

class CBase
{
public:
    CBase()
    {
        m_iValue = 0;
    }
    
    CBase(int i)
    {
        m_iValue = i;
    }
    
    ~CBase()
    {
        m_iValue = 0;
    }
    
    CBase(const CBase &a)
    {
        m_iValue = a.m_iValue;
    }
    
    CBase & operator = (const CBase & a)
    {
        if (&a == this) 
        {
            return *this;
        }

        m_iValue = a.m_iValue;

        return *this;
    }
private:
    int m_iValue;
};

int _tmain(int argc, _TCHAR* argv[])
{
    CBase a(11);
    CBase b(22);
    CBase c(a);
    
    c = b;
    
    system("pause");

    return 0;
}



参考链接:http://wenku.baidu.com/view/94f9b34d2b160b4e767fcfa3.html

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部