欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类与对象2

程序员文章站 2022-04-05 16:20:53
...

类与对象2
上一篇我们大体了解了什么是类、类与对象的关系,那么如何定义一个类呢?
类的声明形式

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

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

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

类的声明时不能对类的成员初始化,如以下就是错误的演示
类与对象2

成员函数

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

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

比如下面一个例子;

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;
 }

类与对象2

用函数输入输出时分秒

。。。。。。                       //借用上面的类定义
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();
}

输出结果;
类与对象2
类与对象2

相关标签: 笔记