结构体的进阶——类
来源:互联网 发布:天涯明月刀cpu占用优化 编辑:程序博客网 时间:2024/06/05 02:01
--知识点1.结构体
1)结构体的声明和定义
struct 结构体名
{ 数据类型1 属性变名1;
...
};
2)结构体的使用
main函数里:
结构体名 结构体变量名;
结构体变量名.属性变量名1=...;
结构体变量名->属性变量名2=...;
...
例如:
...
struct people
{ int age;
char sex;
};
int main()
{ people XiaoMing; //定义了一个小明的结构体对象,具有age和sex两种属性
XiaoMing.age=17; //给小明的age属性赋值
XiaoMing->sex='m'; //调用属性的两种格式 “.” 或者 “->”
...}
--知识点2类的各种延伸
可以将函数放进结构体中,这样使得结构体更加面向对象化。
类比结构体更加结构严谨,尤其体现在数据的封闭性和安全性上。在定义类的成员时要加上访问标示符来表明该成员(数据或函数)能否在指定的作用域中被调用、共享。
1)对象的构造(构造函数会在创建对象后立即执行)
·构造函数的名字必须与雷鸣相同
·构造函数没有返回值,亦不需要返回类型
·构造函数可以是一组重载函数
下面来具体说说构造函数的几种格式:
现已定义类class Complex{
private: double real,imag;
...
接下来写构造函数(其他功能函数忽略):
1)public: Complex(double r=0,double i){real=r;imag=i}; //最直接的定义 其中为real默认了初始值0
2)public: Complex(double r,double i):real(r),imag(i); //带初始化列表的构造函数
注意:有时候需要用一个同类的对象来初始化某个对象。这个初始化是由一个特殊的拷贝构造函数来完成的。定义一个拷贝构造函数的格式如下
类名(const <类名> &); 例如: people (const people &p){this.x=p.x;...;} //const 保证了传入的参数的安全性,&引用节约了空间
2)析构函数
当程序结束时会自动执行来释放对象所使用的空间
--知识点3 .友元
声明友元关系可以在保证数据安全性的前提下,让程序里的函数访问或者调用被声明为友元的类里的私有成员。
友元关系是单方关系,即声明类A是类B的友元,仅仅是A中的某些成员函数能够访问和调用类B中的所有成员(私有的都能访问了,更别说公共的),但是类B中的成员函数仅仅能访问类A中的声明为public的成员。例如
class A
{private:
int num;
public:
...
friend class B; //将类B声明为类A的友元,即B类的成员函数能调用类A中的私有成员(num)
...;}
--知识点4.类的继承
考虑到对象有特殊属性和共有属性,可以在某个具有共有的基础属性的某个基类上,继承出各种具有特殊的属性的类,从而产生特殊的对象,即更加复杂的数据结构。
如果派生类只有一个基类,称作单继承。是从多个基类继承来的,称作多继承。
格式:
class 派生类名:[继承方式] 基类名
{新增成员声明;}
//继承方式有三种,public继承让派生类无权访问基类private成员;private让派生类无法访问基类的成员;protected让派生类可以访问基类的private成员;总的来说 就是一个(public继承)把派生类当朋友看,该给的给,不该给的不给;一个(protected)把派生类当儿子看待,可以访问私有成员;另一个(private)把派生类当外人来看,派生类无权访问基类的成员哪怕是public成员。
当创建派生类对象时,先执行基类的构造函数,在执行派生类的构造函数;析构则先执行派生类的析构函数。
- 结构体的进阶——类
- 【C++进阶】结构体和类的区别及面向对象的认识
- 【c++进阶】结构体的字节对齐问题
- C进阶_1:结构体所占用的字节数
- Oracle学习笔记(二十八)——pl/sql的进阶之控制结构
- SpringMVC进阶(一)——结构和流程
- FORMS进阶之——头行结构
- java进阶——类的继承
- 进阶项目3-点结构体
- 进阶项目3.1-点结构体
- 进阶项目6-日期结构体
- C语言基础之结构体进阶
- C语言及程序设计进阶例程-12 结构体成员的引用
- C语言及程序设计进阶例程-15 指向结构体的指针
- C语言进阶-第30讲:联合体及其与结构体的区别
- 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
- 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
- C++进阶—>类模板
- c# 启动外部程序
- Android 自定义ViewGroup手把手教你实现ArcMenu
- 三. 200多万元得到的创业教训--创业并不需要app
- 网络编程
- centos服务器安全
- 结构体的进阶——类
- ARM堆栈及特殊指令
- Java 并发,读书总结
- overdraw优化小结
- jdk下载网址及其环境变量的配置
- 马屁股决定航天飞机
- 什么时带参的方法
- static_cast,dynamic_cast,const_cast & reinterpret_cast
- vim配置