共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									类MyClass: 
class MyClass{ 
public: 
    MyClass(){ cout  "Default-Constructor"  endl; } 
    MyClass(const MyClass&){ cout  "Copy-Constructor"  endl; } 
     
private: 
    MyClass& operator=(const MyClass&); 
}; 
大家认为这样写, 将调用哪些constructor(忽略内存释放)? 
MyClass mc1 = MyClass(); 
MyClass mc2(mc1); 
MyClass mc3 = *(::new MyClass); 
我的问题主要在mc1和mc2的初始化上, 这两种初始化有区别么? 
PS:  
mc2调用的copy-constructor,  
而mc1调用的default-constructor,  
MyClass()是否创建了临时匿名对象? 
如果创建了, mc1应该是使用copy-constructor初始化的,  
但是程序显示, 编译器只调用了default-constructor,  
这么看来, MyClass mc1 = MyClass()就相当于MyClass mc1.....
							 
							 
							 
							  
							  
							  楼主 2016-01-28 13:31 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知