C++第一章从结构体到类


#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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜甲同学

感谢打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值