C语言类的基本语法详解
1、由C语言的结构体进入到C中的类我们在C语言中当需要定义多个变量的数据集合时第一时间会想到使用结构体来进行定义例如我们定义一个学生变量包含姓名、年龄、性别等信息代码示例如下:12345structStudent{charname[12];intage;charsex[4];};但是到了C用由于C面向对象的语法特性给struct关键字进行了升级不仅仅可以在struct中定义变量还可以定义函数也由此可利用struct来定义一个学生类。代码示例如下1234567891011structStudent{charname[12];intage;charsex[4];voidshow(){cout姓名nameendl;cout年龄ageendl;cout性别sexendl;}};如上所示在C中利用struct关键字定义了一个学生类因为C是兼容C的所以该类在使用时可以当作Student结构体来使用也可以当作Student类来使用(一定是在C中)两种使用如下1234//作Student结构体来使用structStudent strs;//作Student类来使用Student clas;2、C中如何定义类C中定义类的语法格式为class 类名下面直接上代码示例12345classclassName{// 类体由成员函数和成员变量组成};// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字{}中为类的主体注意类定义结束时后面分号。类中的元素称为类的成员类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。3、C中实例化一个对象C中对象的实例化可以理解成有一个类模具根据这个类模具制造出来了许多与类中特性相同的产品。利用学生类实例学生对象示例如下12345Student s1;Student s2;Student s3;//s1、s2、s3这些都是类的实例化对象一个类可以实例化无限个对象//并且这些对象都是不相关的。4、C类的访问限定及其封装 C中的访问限定符C实现封装的方式用类将对象的属性与方法结合在一块让对象更加完善通过访问权限选择性的将其接口提供给外部的用户使用。C中的访问限定符有public、private、protected1、public修饰的成员在类外可以直接被访问2、protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)3、访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止4、class的默认访问权限为privatestruct为public(因为struct要兼容C)封装将数据和操作数据的方法进行有机结合隐藏对象的属性和实现细节仅对外公开接口来和对象进行交互。(可以理解为被封装起来的数据只能在类中直接访问在类外如果需要访问时需要借助类中已经写好的函数来进行操作)对上面的学生类进行封装代码示例如下12345678910111213classStudent{private:charname[12];intage;charsex[4];public:voidshow(){cout姓名nameendl;cout年龄ageendl;cout性别sexendl;}};5、C中类的作用域类定义了一个新的作用域类的所有成员都在类的作用域中。在类体外定义成员需要使用 :: 作用域解析符指明成员属于哪个类域。如果要在类外实现类中声明的方法要先进行::的操作声明属于哪一个类。代码示例如下123456789101112131415classStudent{private:charname[12];intage;charsex[4];public:voidshow()};voidStudent:: show{cout姓名nameendl;cout年龄ageendl;cout性别sexendl;}6、成员变量和方法在类中是如何存储的先来看一段代码123456789101112131415classStudent {private:charname[12];intage;charsex[4];public:voidshow();};intmain(){Student s1;coutsizeof(s1)endl;return0;}结果如图所示为什么会是二十哪show函数的存储不在类中吗正是如此一个类的大小实际就是该类中”成员变量”之和当然也要进行内存对齐注意空类的大小空类比较特殊编译器给了空类一个字节来唯一标识这个类。而类中的方法都被放到类外的同一块空间这样做是避免在实例化对象的时候放在方法的重复定义开辟不必要的内存空间造成空间浪费。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2569807.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!