类的构造函数

//类包含函数与数据 

//对象:一个特定"类"的具体实例

 

/*

 构造函数的作用:

 在创建一个新的对象时,自动调用的函数,用来进行"初始化"工作:对这个对象内部的数据成员进行初始化

 构造函数的特点:

 1 自动调用(在创建新对象时,自动调用)

 2构造函数的函数名,和类名相同

 3构造函数没有返回类型

 4可以有多个构造函数(即函数重载形式)

 

构造函数种类:

默认构造函数

自定义的构造函数

拷贝构造函数

赋值构造函数

 

什么时候调用拷贝构造函数:

1调用函数时,实参是对象,形参不是引用类型

 如果函数的形参是引用类型,就不会调用拷贝构造函数

2函数的返回类型是类,而且不是引用类型

3对象数组的初始化列表中,使用对象

 

 

默认构造函数:没有参数的构造函数

  合成默认构造函数

  自定义默认构成函数 // Human(int a,int b)

 (如果某数据成员使用类内初始值,同时又在构造函数中进行了初始化,那么以构造函数中的初始化为准. 相当于构造函数中的初始化会覆盖对应类内的初始值)

 拷贝构造函数

 1 手动定义的拷贝构造函数 // Human(const Human&);

 2默认拷贝构造函数

 (合成的拷贝构造函数的缺点:使用"位拷贝/浅拷贝")

 赋值构造函数 //Human&operator=(const Human&)

 3.解析构造函数

 ~Human(); //释放内存(1不能自己调用 2对象销毁时,自动调用 3如果不调用,编译器会自动生成一个析构函数(什么也不做) )

 

 1静态数据成员

 所有的成员函数,都可以访问静态数据成员

 2静态成员函数

 对象可以直接访问静态成员函数

 类可以直接访问静态成员函数

 类的static方法内,不能调用这个类的非static方法(实例方法),类的static方法内,不能访问非static数据成员(实例数据成员)

(stati) 在类的静态成员函数(类的静态方法)内部,不能直接访问this指针和对象的数据成员,只能访问类的数据成员//公共部分无法确定哪一个对象

 

const:c++认为,const(常量)对象,如果允许去调用普通的成员函数,而这个成员函数内部可能会修改这个对象的数据成员!而这将导致const对象不再是 const对象 

自由引用对象:void test(Man&man);可以引用自由对象(非const),不能引用const对象

const引用对象:void test(const Man&man);可以引用自由对象与const对象 

 

const 常量vector向量,矢量

*/

#include <iostream>

#include <Windows.h>

#include <string>

#include <string.h>

#include"Human.h"

 

using namespace std;

 

void test() {

 Human h1;

 Human h2;

}

 

void showCount() {

 cout << Human::getCount();

}

 

int main(void) {

 //Human h1(25, 35000); // 使用自定义的默认构造函数

 //Human h2(28, 40000);

 //getBetterMan(h1, h2);//返回一个临时对象,调用拷贝构造函数 

 // Human f1, f2, f3, f4;

 // Human F4[4] = { f1,f2,f3,f4 };//调用拷贝构造函数

// h1.compare1(h2).description();

 const Human li;

 li.description();

 system("pause");

 return 0;

}使用引用可以让执行效率更高。

引用就是不复制原来的对象,string里面会保存很多数据,每次都复制的话就浪费时间。

没必要拷贝的地方就不要拷贝,直接引用。

 

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值