定义C++类对象的方法
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义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
以上是关于定义C++类对象的方法的主要内容,如果未能解决你的问题,请参考以下文章