类与对象2

在这里插入图片描述
上一篇我们大体了解了什么是类、类与对象的关系,那么如何定义一个类呢?
类的声明形式

class  类名{
            public:
                     公有成员(外部接口)
           private:
                      私有成员
          protect:
                      保护成员
                      }

像public这种叫做访问属性;
定义时;类的属性、数据一般定义为private
********;对类的操作(函数)一般定义为public
且最后以分号==;==结束。
访问属性的特点

private:只能由 
      1.该类中的函数、 
      2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问
protected:可以被 
      1.该类中的函数、 
      2.派生类的函数、以及 
      3.其友元函数访问。 但不能被该类的对象访问。
 public:可以被
      1.该类中的函数、 
      2.派生类的函数、
      3.其友元函数访问,也可以由 
      4.该类的对象访问。

类的声明时不能对类的成员初始化,如以下就是错误的演示
在这里插入图片描述

成员函数

定义可分为两种;一种是完全在类中定义,
*****************;一种是函数中说明原型,在类外给给出函数体
并在函数名钱使用类名加以限定
在类外定义函数体形式为;

  返回类型    类名::成员函数名(参数表)
       {
            //函数体
         }

比如下面一个例子;

class Clock
{
publicvoid SetTime(int NewH,int NewM,int NemS);
  void ShowTime();          //类内声明原型
private:
  int Hour,Minute,Second;
};
  void Clock::SetTime(int NewH,int NewM,int NemS);  //类外给出函数体
{ Hour=NewH;
  Minute= NewM;
  Second=NemS;
}
void Clock::ShowTime()
{cout<<Hour<<":"<<Minute<<":"<<Second;
}

从上面可以看出当类内函数参数是类内数据时可以省略参数,比如ShowTime()函数

对象

类可以说描述了一类问题的共同属性和行为;
类的对象时改类的实例或实体,即类的变量。
对象的声明形式:

  类名    对象名;

例r如用上面定义的类,声明对象

Clock myClock;

类中成员的访问

在类外只能访问public中的成员;
访问方式;1

对象名.成员名

2。定义类指针访问;如有一个student类;

student stud1,*p;    //定义类指针
p=&stud1;
p_>成员,(*p).成员        //指针访问形式

3.通过对象的引用访问对象中成员

stdent stud1;
student &stud2=stud1;
cout<<stud2.成员

程序一;输入时分秒

#include <iostream>
using namespace std;
class Time
{public:
 int hour;
 int minute;
 int sec;              //类中仅有数据无函数
 };
 int main()
 {Time t1;
 cin>>t1.hour;
 cin>>t1.minute;
 cin>>t1.sec;
 cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
 }

在这里插入图片描述

用函数输入输出时分秒

。。。。。。                       //借用上面的类定义
int main()
{void set_time(Time&);                                //原型声明
 void show_time(Time&);
 Time t1; 
 set_time(t1);           
 show_time(t1);    
  }
  void set_time(Time& t)                              //定义函数
  {cin>>t.hour;                  
  cin>>t.minute; 
  cin>>t.sec; }
  void show_time(Time& t) 
  {cout<<t.hour<<:<<t.minute<<:<<t.sec<<endl;  }
  

要想用函数改变参数(变量)的值,两种方法;
1.指针
2.引用(上面就是用这种方法)

用类成员函数输入输出

因为成员函数用的是成员数据故变量参数可以省略

#include<iostream>
using namespace std;
class Time
{ public:
   void set_time( );            
   void show_time( );                       //函数原型声明
  private:                    
    int hour; i
    nt minute; 
    int sec;};
    void Time∷set_time( )             //类外给出函数体
    {cin>>hour;
     cin>>minute; 
     cin>>sec;}
     void Time::show_time()
     {cout<<hour<<:<<minute<<:<<sec<<endl;}
     int main()                        //主函数
     {  Time t1;              
        t1.set_time( );              //调用t1的函数成员设置时间
       t1.show_time( );          //调用t1函数 输出时间
       return 0;
      }

类外输入传值给成员数据并输出

#include<iostream>
using namespace std;

class Clock
{public:
  void SetTime(int NewH, int NewM,  int NewS); 
  void ShowTime();
private: 
   int Hour, Minute, Second; };          //定义类

void Clock::SetTime(int NewH, int NewM,int NewS)    //类外函数
{    Hour=NewH; 
  Minute=NewM; 
 Second=NewS;}
void Clock::ShowTime() 
{   cout<<Hour<<":"<<Minute<<":"<<Second;}

int main()
{ Clock  myClock,yourClock; 
int h,m,s; 
myClock.SetTime(8,30,30);     //调用myClock中的函数SetTime( ...)
myClock.ShowTime();
 cin>>h>>m>>s; 
yourClock.SetTime(h,m,s); 
yourClock.ShowTime();
}

输出结果;
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值