#include <iostream>
usingnamespacestd;
//面向对象的程序设计思想
//出发点:为了弥补面向过程程序设计的一些缺点。它的主要活动集中在建立对象和对象之间的联系上,从而完成所需要的计算
//面向对象的程序设计。最大的特点是:能够大幅度地提高软件项目的成功率,减少以后的维护费用,提高软件的可移植性和可靠性
//主要包括以下几个方面:
//1、对象的使用--对象的概念被广泛地使用在建模到构建程序的各个方面。
//2、抽象化--将各种独立的操作分解成为可以用命名区分的单元。
//3、封装性--不同的操作具有不同的作用范围。
//4、多态性--对于不同数据类型的相似操作使用相同的命名
//5、继承性--类可以被继承,从而实现不同层次的对象
//这个是一个结构体的声明方式
struct TimeStruct
{
int iSecond;
int iMinute;
int iHour;
};
//这是一个类的声明方式:
class timeClass
{
private:
int m_Second;
int m_Minute;
int m_Hour;
//这个变量的存在是为了方便大家查看类型所占内存空间。
// int a;
public:
void setTime(int _second,int _minute, int _Hour)
{
m_Second = _second;
m_Minute = _minute;
m_Hour = _Hour;
}
void PrintTime()
{
cout<<m_Hour<<":"<<m_Minute<<":"<<m_Second<<endl;
}
};
main函数:
int main(int argc, const char * argv[])
{
TimeStruct morningTime,afternoonTime;
cout<<"查看结构体 所占用的空间:"<<sizeof(morningTime)<<endl;
morningTime.iHour = 3;
afternoonTime.iHour = 19;
cout<<"morningTime.iHour ="<<morningTime.iHour<<endl;
cout<<"afternoonTime.iHour = "<<afternoonTime.iHour<<endl;
//下面创建的对象是一个类型而不是指针,区别在于类型的占用的内存空间,是由类内部有多少数据类型决定的。可以将上面注释的变量解开看看之后,所占用的控件
timeClass morningTimeClass;
cout<<"查看类型所占用的空间:"<<sizeof(morningTimeClass)<<endl;
morningTimeClass.setTime(2, 4, 5);
morningTimeClass.PrintTime();
timeClass* morningTimeClassA = new timeClass();
cout<<"查看指针所占用的空间:"<<sizeof(morningTimeClassA)<<endl;
morningTimeClassA->setTime(3, 4, 5);
morningTimeClassA->PrintTime();
return 0;
}
代码下载地址: http://pan.baidu.com/share/link?shareid=701905370&uk=3189484501
http://vdisk.weibo.com/s/FA4pz
访问权限与类外函数实现
//如何设置类成员的访问权限:
//private:私有成员,只能在类中的被访问,在类外不能访问私有成员。
//public:公有成员,在类中和类外都能被访问,通常将成员函数定义为公有的,用于提供对类外访问类中私有成员的接口
//protected:保护成员,具有公有和私有的共同特性,即保护成员只能被类内和派生类中成员访问,在类外不允许被访问。
class timeClass
{
private:
int m_Second;
int m_Minute;
int m_Hour;
public:
void setTime(int _second,int _minute, int _Hour);
//函数重载,什么是函数重载就是方法名相同,但参数不同,在C++中就是两个方法。
void setTime();
void PrintTime()
{
cout<<m_Hour<<":"<<m_Minute<<":"<<m_Second<<endl;
}
};
void timeClass::setTime()
{
m_Second = 0;
m_Minute = 0;
m_Hour = 0;
}
//这是在类外定义成员函数
void timeClass::setTime(int _second,int _minute, int _Hour)
{
m_Second = _second;
m_Minute = _minute;
m_Hour = _Hour;
}
int main(int argc, const char * argv[])
{
timeClass tempTime;
tempTime.setTime();
tempTime.PrintTime();
tempTime.setTime(34, 23, 1);
tempTime.PrintTime();
return 0;
}
代码下载: http://pan.baidu.com/share/link?shareid=1252351212&uk=3189484501
第一章1.2类和对象.zip" http://vdisk.weibo.com/s/FAVgE
this指针
//原来当调用成员函数setTime的时候,成员函数除了接受3个实参外,还接收一个对象A或B的地址,这个地址被隐含的形参this指针所取得,然后所有对数据成员的访问,前面都隐含地被添加了this->前缀,所以setTime()函数的实现应该如下:
void timeClass::setTime(int _second,int _minute, int _Hour)
{
this->m_Second = _second;
this->m_Minute = _minute;
this->m_Hour = _Hour;
}
代码下载:http://pan.baidu.com/share/link?shareid=1288076888&uk=3189484501
Hi,推荐文件给你 "第一章this指针.zip": http://vdisk.weibo.com/s/FAY5I
本文出自 “7087095” 博客,请务必保留此出处http://7097095.blog.51cto.com/7087095/1221011