【c++】c语言入门到c++使用高手:深入学习C++之基本语言(五)
第二章 基本语言第五节 结构、权限修饰符、类简介1. 结构回顾结构,自定义的数据类型#includeiostream#includecstringusing namespace std;typedefstructstudent{intnumber;charname[100];}student;//形参用结构变量voidfunc(student tmpstu){tmpstu.number2000;strcpy(tmpstu.name,Who);}voidfunc1(studenttmpstu){tmpstu.number2000;strcpy(tmpstu.name,Who);}//用指向结构体的指针作为函数传递voidfunc2(student*tmpstu){tmpstu-number3000;strcpy(tmpstu-name,WhoWho);}intmain(){student stu1;strcpy(stu1.name,Felaim);stu1.number1001;coutstu1.nameendl;coutstu1.numberendl;// 值并没有发生变化// 效率很低,整个结构体都被进行拷贝func(stu1);coutstu1.nameendl;coutstu1.numberendl;func1(stu1);coutstu1.nameendl;coutstu1.numberendl;student*pstu;func2(pstu);coutpstu-nameendl;coutpstu-numberendl;return0;}c和c语言中的结构有什么区别?c中结构具备了c语言结构的所有功能外,还增加了很多扩展功能,最突出的扩展功能是:不仅仅有成员变量,还可以定义成员函数(方法)#includeiostream#includecstringusing namespace std;typedefstructstudent{intnumber;charname[100];//成员函数也叫方法voidfunc(){number;}}student;//形参用结构变量voidfunc(student tmpstu){tmpstu.number2000;strcpy(tmpstu.name,Who);}intmain(){student stu1;strcpy(stu1.name,Felaim);stu1.number1001;coutstu1.nameendl;coutstu1.numberendl;// 值并没有发生变化// 效率很低,整个结构体都被进行拷贝func(stu1);coutstu1.nameendl;coutstu1.numberendl;stu1.func();coutstu1.numberendl;return0;}2. public和private权限修饰符public(公有), private(私有), protect(保护),本节介绍前两种public:公共的意思,用这个修饰符修饰结构/类中的成员变量或成员函数,就可以被外界访问,一般我们需要被外界访问的东西,就定义为publicprivate: 私有的意思,用这个修饰符修饰结构/类中的成员变量或成员函数,只有内部定义的成员函数才能使用#includeiostream#includecstringusing namespace std;typedefstructstudent{public://结构成员缺省都有public属性private:intnumber;charname[100];public://成员函数可以调用私有成员变量numbervoidfunc(){number100;coutnumberendl;}}student;intmain(){student stu1;// 如果定义成private之后,就无法调用strcpy(stu1.name,Felaim);stu1.number1001;coutstu1.nameendl;coutstu1.numberendl;return0;}3. 类简介类也是用户自定义的数据类型不管是c还是c,结构都使用struct定义结构和类到底有什么区别?类只有在c中才有的概念结构使用struct来定义,类用class中定义,在c中定义一个属于该结构的变量,我们称为结构变量在c中,我们定义一个属于该类的变量,我们称为对象说白了结构变量也好,对象也好,它们都是一块能够存储数据并且具有某种类型的内存空间c中结构和类极其相似,区别有两点:c结构内部的成员变量以及成员函数默认的访问级别都是public属性,c类内部的成员变量以及成员函数默认的访问级别是privatec结构体继承默认的是public,c类的继承默认的都是private额外说明:标准c库中包含大量丰富的类和函数, string, vector4. 类的组织书写规范:类的定义代码放在头文件中, 头文件可以和类名相同,类的具体实现代码放在.cpp文件中,实现的文件名也可以是类名,.cpp文件中需要包含类名的.h文件