我爱Aspx >> VC.Net >> 接触VC,2:1 {//名域3
strValue=bird.m_strWing;
}
}//<<就在后大括号这里引发了bird对象的析构函数
strValue=”Blue Atlantis”;
}
这里有3个名域,我在名域2中声明了一只小鸟。因为名域3也被包括在名域2里,所以名域3中的空间也属于名域2,于是在名域3中引用小鸟对象是正确的。当执行指针离开名域2那一瞬,C++系统将会把在名域2中声明的所有变量及对象删除掉。
当对象被删除时,首先会执行析构函数,然后系统再去释放对象所占用的内存空间。
所以当执行到strValue=”Blue Atlantis”;这一句时,这只小鸟就已经不存在,再去引用它就会编译错误。
另外,要讲一讲对象的建立。一种是像变量一样声明建立起来对象,像上面的Aves bird;另一种就是用new语句来建立起来对象。如:
Aves *bird;
bird= new Aves();
new语句跟着一个类的构造函数,它会在内存建立起来一个对象,并把这个对象的指针返回出来。这样建立起来的对象没有名域空间的限制。如果要将这个对象删除掉必须手动的使用delete语句。如:
delete bird;
delete后面跟着指向要删除对象的指针变量。注意,这个指针变量的类型直接影响到对象的删除时所使用的析构函数。所以,什么类型的对象,就要用什么类型的指针来指向删除。
真实的鸟类应该是可以飞翔(绝大部分),可以发出叫声,可以在陆上跑(至少可以跳)。所以我们也应该让我们的鸟类也可以跳,可以飞吧。于是,我要向类中添加成员函数。声明成员函数可以有两种方法,一种是在类的声明体里面,像上面例子中构造函数的声明方法,另一种是在类的声明体外面。外部的表现写法为 返回值 类名::函数名(参数列表)。注意::是由于两冒号组成。
自己动手做QQ木马----邮件发送篇[05-21]
接触VC(二)[05-21]
WTL流程分析-初稿[05-21]
通过串口收发短消息(下)[05-21]
自己动手做QQ木马-----HOOK篇[05-21]
自己动手做QQ木马-----总序[05-21]
进程间的通讯实现(IPC)的11种方..[05-21]
C++深度探索系列:智能指针(Smar..[05-21]
使用strcpy的几点心得[05-21]
用MASK方法传送不规则位图[05-21]