随笔-2  评论-0  文章-1  trackbacks-0

如果一个类重载了=,那么执行   classname p=q; 调用的是拷贝构造函数还是重载=?
class A
{
    int k;
   public:
    A(int k=0):k(k){}
    explicit A(const A &temp):k(temp.k){}
    A operator=(const A &temp)
    {
        return (A(temp.k));
    }
};
int main()
{
    A a(20);
    A b=a;
}
会出错,说明调用的还是拷贝构造函数。
重载的=是用在   p=q  时的。而且operator=中也用到了拷贝构造函数的。

posted on 2006-09-02 19:06 4346 阅读(230) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理