c++实例研究

从0开始

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks

 

/*  
*    Doc Name: Basic Concepts: constructor, copy constructor,
*                assignment operation
*    Prob Id: -
*    Serial Id: A.2.2
*    Author: -
*    Env: Microsoft Visual Studio 2008 Win32 Console
*    Date: 10/10/27
*/


#include 
"stdafx.h"
#include 
<iostream>
using namespace std;

class A
{
public:
    A()
{cout<<"ctor"<<endl;}
    A(
int i){cout<<"ctor int"<<endl;}
    A(
const A& src){cout<<"copy ctor"<<endl;}
    A
& operator=(const A& rhs){cout<<"assgin op"<<endl; return (*this);}
}
;

void println(const int n)
{
    cout
<<"------- case "<<n<<"-------"<<endl;
}


A
& getInstRef()
{
    A
* p = new A();
    
return *p; 
}


A getInst()
{
    A
* p = new A();
    
return *p;
}


int _tmain(int argc, _TCHAR* argv[])
{
    println(
1);
    A instA; 
//ctor in stack
    println(2);
    A
* pint;  //nothing done
    println(3);
    pint 
= new A(); //ctor heap
    
    println(
4);
    A instAA(instA); 
//copy ctor
    println(5);
    A instAAA 
= instA; //copy ctor
    
    println(
6);
    instAA 
= instAAA; //assign op
    
    println(
7);
    A instAAAA 
= getInstRef(); //temp instance - return refrence to construct
    println(8);
    instAAAA 
= getInstRef(); //temp instance - return refrence to copy construct
    
    println(
9);
    A instA5 
= getInst(); //temp instance - return instance to construct
    println(10);
    instA5 
= getInst(); //temp instance - return instance to copy construct

    println(
11);
    A instA6 
= 3;
    println(
12);
    A instA7;
    instA7 
= 4;

    
return 0;
}


posted on 2010-10-27 20:37 elprup 阅读(172) 评论(0)  编辑 收藏 引用

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