定义C++类对象的方法

定义C++类对象的方法

       我们学习了类的定义,与C语言的struct结构体类型定义差不多。那么,C语言可以使用struct结构体类型来定义对象,那么,C++同样可以使用类来定义对象。

       C++使用类来定义对象也可以有几种方法。

(1) 先声明类类型,然后再定义对象

例如:

//定义student;

class student //class 开头

{

public:

//定义成员变量

    char name[32]; //姓名

    char addr[32]; //家庭地址

    long long number; //电话号码

public:

//定义成员函数

    void print()    //输出成员的信息

    {

        cout << "name = " << name << endl;

        cout << "addr = " << addr << endl;

        cout << "number = " << number << endl;

    }

};

student stud1, stud2;   //定义了两个student类的对象stud1和stud2

可以看到,定义了一个student类,然后,使用student类来定义了stud1和stud2这两个对象。

在C++中,在声明了类类型后,定义对象有两种形式。

(A) class 类名 对象名

例如:

class student stud1, stud2;

把class和student合起来作为一个类名,用来定义对象。如同C语言的struct结构体类型一样,需要携带 struct 关键字来定义结构体对象。

(B) 类名 对象名

例如:

student stud1, stud2;

       直接用类名定义对象,这两种方法是等效的。第一种方法是从C语言继承下来的,第二种方法是C++的特色,显然第二种方法更为简洁、方便。

       如果是定义指针类型的对象,定义方法如同C语言的struct结构体一样。如下:

类名* 指针对象名;

       通过指针运算符“*”来定义一个指针对象。

(2) 在声明类类型的同时定义对象

       在定义class类的时候,在定义类的末尾,定义类对象。

//定义student;

class student //class 开头

{

public: //定义成员变量

    char name[32]; //姓名

    char addr[32]; //家庭地址

    long long number; //电话号码

public: //定义成员函数

    void print()    //输出成员的信息

    {

        cout << "name = " << name << endl;

        cout << "addr = " << addr << endl;

        cout << "number = " << number << endl;

    }

} stud1, stud2; //定义了两个student类的对象stud1和stud2

       可以看到,在定义student类的末尾,定义了stud1和stud2对象。这种方式,C语言的struct类型也支持。

(3) 定义匿名类,不出现类名,直接定义对象

       在定义类的时候,在class关键字后面,没有定义类名。如下:

class      //没有类名

{

public: //定义成员变量

    char name[32]; //姓名

    char addr[32]; //家庭地址

    long long number; //电话号码

public: //定义成员函数

    void print()    //输出成员的信息

    {

        cout << "name = " << name << endl;

        cout << "addr = " << addr << endl;

        cout << "number = " << number << endl;

    }

} stud1, stud2; //定义了两个类的对象stud1和stud2

       此时,定义一个匿名类。就是没有类名的类。定义匿名类的同时,定义匿名类对象。

       定义匿名类,在C++中是合法的,允许的,但却很少用,也不提倡用。因为在面向对象程序设计和C++程序中,类的声明和类的使用是分开的,类并不只为一个程序服务,人们常把一些常用的功能封装成类,并放在类库中。因此,在实际的程序开发中,一般都采用上面3种方法中的第一种方法。在小型程序中或所声明的类只用于本程序时,也可以用第二种方法。

       在定义一个对象的时候,编译系统会为这个对象分配存储空间,用来存放对象中的成员。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦凯峰Linux编程学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值