C++中如何定义类和对象?

在C++语言中,对象的类型被称为类,类代表了某一批对象的共性和特征。

类是对象的抽象,而对象是类的具体实例。如同C中的结构体一样,我们要先定义一个结构体,再使用结构体去定义一个变量。同一个结构体可以定义出多个不同的结构体变量。我们要使用类也是如此。

类是对象的模板,如同我们在建造房屋时候的图纸,然后我们就可以利用这个图纸去建造许多个房屋。我们可以使用别人已经定义好的类。更多的时候,我们要根据需要定义自己的类。

定义类

定义结构体的方法:

struct Student

{

char name[128];

int age;

char add[128];

};

类的定义格式:

class类名

{

private : //成员访问限制符

成员数据;

成员函数;

public : //public设置之前的成员都是上面所设置的私有的

成员数据;

成员函数;

protected:

成员数据;

成员函数;

};

类也是一种数据类型,它是一种我们自己定义的广义的数据类型。

private

私有的,只能在类的内部访问,类的外部不能访问。

protected

受保护的,只能在类的内部访问,类的外部不能访问,还可以在它的派生类中访问,派生类后面会详细介绍。

public

公有的,类的外部和内部都可以访问。

一个类可以包含多个成员访问限制符,每一个生效的范围直到下一个限制符被设置,如果没有被设置的话,默认为私有的。虽然同一个访问限制符可以出现多次,但是为了代码的简洁,我们应当让它们只出现一次。还有让public的成员放在类的声明前面。因为别人在观看你的代码的时候只会在意你的public成员,其它对外界隐藏的成员对于外界是没有意义的。

C++中新增了类这个关键字,依然保留了结构,只是将结构进行了扩展,使它也可以定义成员函数。与类不同的是,结构中未声明访问限制的时候就会默认为公有的。

如下面这个print()函数在结构体中就是公有的,如果在类中没有被声明访问限制就是私有的。

定义对象

class类名 对象名;

类名对象名;//我们经常使用这种方法来创建一个对象

类的成员函数

类的成员函数也被称为类的方法,它也是函数的一种,它和基本的函数是一样的。它跟一般函数的区别只是它是一个类的成员,它是定义在类的内部的,同时它有访问控制符。

私有的成员函数只能在本类中被调用,将需要被外界调用的成员声明为公有的,公有的成员函数就成了一个接口。如果我们只是希望一个函数在类的内部被其它函数所调用,我们就可以将它声明为私有的,因为这样的函数用来支持其它函数实现一些功能,我们称这样的函数为工具函数。

我们也可以不用定义成员函数,但是这就体现不出类的作用,就相当于C的结构体了。

下面我们通过一个实例来了解一下类的结构。

在四号区域,我们创建了一个类的对象stu,并通过它调用了类的两个公共的方法,私有和保护的方法在外界是不能被调用的。在一号区域,我们完成了print()函数的声明和定义,但是getAge()函数仅仅只是声明了,我们在三号区域当中,也就是类的外部定义了它。当我们在类的外部定义成员函数的时候,我们要在函数名前面加上类名和作用域限制符,它表示这个成员函数是属于这个类的。二号区域中定义了一些私有的成员属性。在类的内部进行成员函数的声明,类的外部进行成员函数的定义,这是一个非常好的习惯。这样使类的长度更加短,结构层次更加清晰,便于我们阅读,而且有助于把类的声明和实现分离,从类的定义体中,用户只看到了类的原型,这对我们实现数据隐藏是有好处的。

在类的内部进行声明和实现的时候,编译器自动的将这些函数定义为内联函数。如print()函数。在类之外定义的函数默认就不是内联函数,我们可以在定义函数的时候显式的加上inline关键字使它变成内联函数。如getAge()函数就可以在类外部定义的时候加上inline关键字声明使它变为内联函数。

原文链接:http://www.maiziedu.com/wiki/cplus/define/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 7,985评论 0 3
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,150评论 1 51
  • 类是一个重要的C#编程概念,它在一个单元内定义了表示和行为。类提供了面向对象编程和面向组件编程所需的语言支持,是创...
    CarlDonitz阅读 4,413评论 0 2
  • 一 前几天带着赵老师到营业部做一笔理财业务。这一笔是去年存的,赵老师不放心,假如亏了怎么办?所以她要取出来,...
    江苏刘志祥阅读 1,150评论 0 0
  • 6月的骄阳,6月的细雨,6月的希翼,6月的离别,我们不散不见。 6月,一个热情似火的季节。 6月的骄阳,就像我们毕...
    知足且上进阅读 3,349评论 4 1