C++ 对象创建

// 创建对象,通过调用构造函数创建一个对象。

// 构造函数中没有返回值,所以一般情况下,仅仅做对象赋值操作。 从外部实参传到内部成员变量的操作

 

举例:

CZkWatch watch;
CAsyncZooKeeper zk(m_pAppCfg->getZkIpList(), &watch , m_pAppCfg->getZkTimeout() , true);

说明:

// 这里是zk的属性, 不使用*pZk的原因是:new和delete

// 这里的zk就是栈上的普通的对象

 

//真正建立连接,是在init中实现的。用法是:非构造函数并带返回值,能够清楚的知道执行的结果。
char szMsg[1024] = {0,};
if (!zk.init(szMsg))
{
printf("Call zk.init error(%s)\n", szMsg);
return -1;
}

//C语言中通常是单值返回,对象除外(数据成员)。 如果想多返回信息内容,就要靠形参的指针和引用。

//init方法 返回ture和false告知是否连接成功。不成功的话,可通过szMsg返回具体失败原因的描述

 

//非new保存在栈上

int i = 0;

for(i=0; i<10; i++)

 

//new在堆上,并通过栈上的指针进行引用。

int *pI = new int;

*pI  = 0;

for (*pI=0; *pI<10; *pI++)

 

delete pI;

 

所有new出来的空间全部在堆上,需要delete配对。堆空间的地址返回给栈上的变量,进行引用。

所有变量,非new的东西都在栈上。

posted @ 2014-06-04 23:20  青梗墨竹  阅读(225)  评论(0)    收藏  举报