构造函数与this指针

内存分为5大区 : 静态区,常量区,栈,堆,代码区

this 指针,就是一个指向当前对象的指针,我们知道,定义一个类,它在内存中不占空间的,只有定义了该类类型的对象时,系统就会为该对象分配一段储存空间,这段空间里只存储成员变量,对于成员函数,是存放在代码区的

首先提到的是几个知识点
1,类
类包括“ 成员和方法“
成员: (private) int a; 等等~
方法: (public) 函数 等等 ~
2,访问限定符号
private 注意,只能在类里面使用(如在类中包含类问题,在函数内部不能直接调用类中 所包含的私有成员变量(另外注意其赋值问题))
protect
public
3,引用和传地址
int& a 和 &a
4,常用快捷键
Ctrl+c+k 注释
Ctrl+c+u 解注释
shift+F5 停止调试
this指针概念







我们会在下面这个代码中,实现所讲的问题
class Time
{
public:
Time()
{
cout<<"Time()"<<endl;
}
//或者
//Time(int hour = 0, int minute = 0, int second = 0)
// : _hour(hour)
// , _minute(minute)
// , _second(second)
//{}

Time(int hour, int minute, int second)
: _hour(hour)
, _minute(minute)
, _second(second)
{}
void PrintTime()
{
cout<<_hour<<":"<<_minute<<":"<<_second<<endl;
}

void SetTime(int hour, int minute, int second)
{
_hour=hour;
_minute=minute;
_second=second;
}
private:
int _hour;
int _minute;
int _second;

};

class Date
{
public:
/*explicit*/ Date(int year)
{
cout<<"date()"<<endl;
}
//Date()
//{}

Date(int year , int month , int day =1)
: _year(year)
, _month(month)
, _day(day)
, t(0,0,0)
{
//t.SetTime(0,0,0);
}

void SetDate(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}

void PrintDate()
{
cout<<_year<<"-"<<_month<<"-"<<_day<<endl;
}

private:
int _year;
int _month;
int _day;
Time t;
};

//Date d;

void FunTest()
{
int a = 10;
int b(a);

Date d1(6);
// Date d2 = 2016;

//Date d3(d2);
}

int main()
{
FunTest();
return 0;
}

先理解了构造函数定义。创建一个对象,没有传参,则调用默认构造函数,构造函数是类里面默认的。










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值