内存分为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;
}
先理解了构造函数定义。创建一个对象,没有传参,则调用默认构造函数,构造函数是类里面默认的。