类和对象第一讲

C++里面比较重要的东西了,类和对象,先介绍一些概念性的东西。

客观世界中任何一个事物都可以看成一个对象。

对象是构成系统的基本单位。

任何一个对象有两个要素:1.属性,2.行为。同理,凡是具备这两种属性的都叫做对象。

C++中,每个对象都是有数据和函数组成的。函数是用来对数据进行操作的,以便实现某些功能。

在设计一个对象时,把对象的内部实现和外部行为分割开来。

类是对象的抽象,对象是类的特例。

对象=程序+数据结构。

C++中对象的类型称为类,类代表了某一批对象中的共性和特征。对象就是类的一个变量。类是抽象的,不占用内存的,而对象是具体的,占用内存空间的。

类类型的声明形式:

Class 类名

{

Private

    私有的数据成员和成员函数;

Public

    公用的数据成员和成员函数;

}

 

类和结构体类型的异同:

Class保留了结构体类型,而且把他的功能也扩展了,C++允许用struct来定义一个类类型。

struct定义的类类型内部如果没表明是什么显式声明,系统默认为public,而class则默认为private

最简单的例子:

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class time
{
public:
    int hour;
    int minute;
    int sec;
};
int main()
{
    time t1;
    cin>>t1.hour>>t1.minute>>t1.sec;
    cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
    return 0;
}

注意:

(1)在引用数据成员hourminutesec时不要忘记在前面制定对象名。

(2)不要错写类名。

(3)不能删除输入的语句。

     程序的改进版:

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class time
{
public:
    int hour;
    int minute;
    int sec;
};
void set_time(time &t1)
{
    cin>>t1.hour>>t1.minute>>t1.sec;
}
void show_time(time &t1)
{
    cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
}
int main()
{
    time t1;
    set_time(t1);
    show_time(t1);
    return 0;
}

在对其作出一定的修改,数据成员不再由键盘输入,而在调用函数时用实数给出,并在函数中使用默认参数。

例:

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class time
{
public:
    int hour;
    int minute;
    int sec;
};
void set_time(time &t1,int hour=0,int minute=0 ,int sec=0)
{

    t1.hour=hour;
    t1.minute=minute;
    t1.sec=sec;
}
void show_time(time &t1)
{
    cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
}
int main()
{
    time t1;
    set_time(t1);
    show_time(t1);
    time t2;
    set_time(t2,1,2,3);
    show_time(t2);
    return 0;
}
或者:
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class time
{
public:
    int hour;
    int minute;
    int sec;
};

int main()
{

    void set_time(time &,int hour=0,int minute =0,int sec=0);
    void show_time(time&);
    time t1;
    time t2;
    set_time(t1);
    show_time(t1);
    set_time(t2,1,2,3);
    show_time(t2);
    return 0;
}
void set_time(time &t1,int hour,int minute ,int sec)
{

    t1.hour=hour;
    t1.minute=minute;
    t1.sec=sec;
}
void show_time(time &t1)
{
    cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
}

程序中只在主函数中set_time函数时制定了默认参数,在定义ste_time函数时不必重复定义默认参数。如果在定义函数时也指定了默认参数,其值应该与函数声明时一致,否则以函数声明时的默认值为准,在定义函数时指定的默认值不起作用。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值