形式多样的构造函数
来源:互联网 发布:有慢放功能的软件 编辑:程序博客网 时间:2024/05/08 09:36
1、拷贝构造函数:
模型:
class A { public : A(A& a){ //函数体 } };什么时候调用拷贝构造函数:
(1) 当用类的一个对象去初始化该类的另一个对象时候。系统
自动调用它实现拷贝赋值
形如: A a(1,1); A b(a);
(2) 若函数的形参为类的对象,调用函数时,实参赋值形参,系统自动
调用拷贝函数.
test(A a); A aa; test(aa);
2、组合类构造函数
模型:类::类(对象成员所需的形参,本类成员形参):对象1(参数),对象2(参数),……{
本类初始化
}
调用顺序:
先调用内嵌对象的的构造函数,先声明的先调用。如果是缺省构造函数,则内嵌对象的初始化也将调用相应的缺省构造函数,析构相反。
举例:
class Base {private:int b1;int b2;public:Base(int b1,int b2){ printf("base create \n"); this->b1 = b1; this->b2 = b2;}~Base() { printf("base destroy \n"); }};class Test{private:int t1;Base b;public:Test(int b1,int b2,int t1):b(b1,b2){ printf("test create \n");this->t1 = t1;}~Test(){ printf("test destroy \n");}};int _tmain(int argc, _TCHAR* argv[]){Test* test = new Test(1,2,3);delete test;int in;scanf("&d",in);}
结果:
base create
test create
test destroy
base destroy
#include "stdafx.h"#include <iostream>using namespace std;class Base {private:int b1;int b2;public:Base(int b1,int b2){ printf("base create \n"); this->b1 = b1; this->b2 = b2;} Base(Base & b) {printf("copy create\n");}~Base() { printf("base destroy \n"); }};class Test{private:int t1;Base b;public:Test(Base b1,int t1):b(b1){ printf("test create \n");this->t1 = t1;}~Test(){ printf("test destroy \n");}};int _tmain(int argc, _TCHAR* argv[]){Base b(1,2);Test* test = new Test(b,3);delete test;int in;scanf("&d",in);}
结果:
base create
copy create
copy create
test create
base destroy
test destroy
base destroy
3、含有继承关系的构造函数
模型:派生类:派生类(基类1新参,基类2新参,基类3形参,……,基类n新参,本类新参):
基类1(参数),基类2(参数),……基类n(参数),对象数据成员初始化
{
本类成员初始化赋值语句;
};
实例:
C(int a,int b,int c,int d):B1(a),memberB2(d),memberB1(c),B2(b)
{
}
我就不举例了,太多了
- 形式多样的构造函数
- 构造函数的构造顺序
- 构造函数中显式的调基类构造函数
- 构造函数、拷贝构造函数的运用
- 类的构造函数、拷贝构造函数
- String的构造函数拷贝构造函数
- 【构造函数】解析构造函数的作用
- WebService的构造函数
- 类的构造函数
- private的构造函数
- C#的构造函数
- 类的构造函数
- 构造函数 的protected
- 构造函数的理解
- 类的构造函数
- 构造函数的作用
- 构造函数的点点滴滴
- 构造函数的问题
- Struts2---->类型转换
- 验证框架
- 【antsvn】linux服务器下用ant实现SVN代码更新,部署
- UI标签
- 上传下载
- 形式多样的构造函数
- AS3多线程快速入门(三):NAPE物理引擎+Starling
- 用栈来是实现表达式求解的小程序
- 嵌入式web入门:boa服务器移植到简单cgi测试
- MySQL锁的用法之表级锁
- phpDocumentor 居然没有 -o 选项
- C#事件处理机制
- flex的取整(取数)数学运算实例
- 《知识产权法》参考教材和网站等