类和对象的定义与访问(一)

类和对象的定义与访问

类是在结构的基础上发展而来,是为了实现对数据和操作的封装而来。

定义类和对象

与结构体相类似。

class clock
{
    int length,wide,com;//长宽和零件等内部信息
    int h,m,s;//时分秒
public :
    void sett()//输入时间
    {
        cin>>h>>m>>s;
    }
    void showt()//输出时间
    {
        cout<<h<<":"<<m<<":"<<s<<endl;
    }
};

类成员中可以用不同关键字指明不同的访问特性,决定其在体系内外的可见性。

  1. public:声明共有成员,这是类的接口,在类中和类外可见。
  2. private:声明私有成员,这一类成员只能在类内可见,在派生类与类外皆不可见。
  3. protected:声明保护成员,在类内与派生类内可见。
    除去class外,struct也可用于定义类,但是,在struct中若不特别指出,则在其内所有成员都是公有,不像class一样默认为私有。也就是说定义struct时初始在顶部就有public关键字,而class则为private。
    注意以上三个声明访问权限的关键字的作用范围是从出现这个关键字开始到下一个关键字出现时结束。

这里说一个运算符叫作用域运算符 ::
在类中写出的函数被当作内联函数处理,所有你如果想在类外写类内的函数的话,你需要先在类内声明这个函数,再在类外用以下形式写出函数

void clock::rep(int nh,int nm,int ns)
    {
        h=nh;
        m=nm;
        ns=ns;
    }

当然,在类中的数据成员除了基本类型外还可以是数组、结构、类等自定义的数据类型,如:

class student 
{
    char name[10];
    clock cc;
};

一般对类中的数据都要声明成私有成员。至于为什么要建议声明成私有成员呢?
假设你自己是手表生产商,你为了保住自己的饭碗,绝对不能把自己生产的手表的各种数据参数公布给外界啊,只能让外界使用手表所能带来的功能,如看时间,调时间等等。

访问对象成员

这个操作与结构体也相类似。

int main()
{
    clock c1;
    c1.sett();
    c1.showt();
    return 0;
}

都是运用运算符.来访问对象.同样,->这个运算也是用指针来访问对象成员的。

int main()
{
    clock c1,*c2;
    c2=&c1;
    c1.sett();
    c1.showt();
    c2->sett();//等价于(*c2).sett()和c1.stt();
    c2->showt();
    return 0;
}

最后也是由于自己经验不足,只能将自己所认识到的东西写出来了,别的也是不了解把。

你可能感兴趣的:(C++学习总结)