#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, constchar * 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 = newtimeClass(); cout<<"查看指针所占用的空间:"<<sizeof(morningTimeClass)<<endl; morningTimeClassA->setTime(3, 4, 5); morningTimeClassA->PrintTime(); return0; }
代码下载地址: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; } };
voidtimeClass::setTime() { m_Second = 0; m_Minute = 0; m_Hour = 0; } //这是在类外定义成员函数 voidtimeClass::setTime(int _second,int _minute, int _Hour) { m_Second = _second; m_Minute = _minute; m_Hour = _Hour; }
int main(int argc, constchar * argv[]) { timeClass tempTime; tempTime.setTime(); tempTime.PrintTime(); tempTime.setTime(34, 23, 1); tempTime.PrintTime(); return0; }
代码下载: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()函数的实现应该如下:
voidtimeClass::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