【cpp面向对象编程学习笔记】Class经典分类(1)without pointer member(s)

来源:互联网 发布:顶级定制晚礼服 知乎 编辑:程序博客网 时间:2024/05/16 07:43

cpp面向对象编程@geekband

1. 基于对象(Object Based)vs面向对象(Object Oriented)

前者面对的是单一类的设计,后者是多重类的设计,并且是classes 与 classes之间的关系

2. cpp中分类及代码基本形式

-在cpp内有关类的设计有两个经典的分类:Class without pointer(s)、Class with pointer(s) 后者需要涉及到内存管理。
-cpp代码主要文件有三种:.h(header files)[Class Declaration]—–.cpp(ex.main)—–.h(header files)[Standard Library]
其中在编写Header中注意要有防卫式声明,格式及布局如下

//example.h#ifndef _EXAMPLE_#define _EXAMPLE_//forward declarations(前置声明)//......//....//..//class declarations(类-声明)//......//....//..//class definition(类的定义)//......//....//..#endif

3. 类的声明与定义

    -访问级别:    public 给外界调用的接口 private data部分,若没有声明访问级别,则class 默认为private    -构造函数:     -1.每个类中都有若干个构造函数,其作用对类内的成员函数及数据成员进行初始化,并且构造函数可以有多个,用于满足不同client的需求。     -2.与其他的成员函数不同,首先构造函数的名称必须与函数名相同,其次构造函数没有返回值。     -3.使用初始值列表(Initialization List)方式对构造函数默认实参设置,更能表示该值为初始化,        在构造函数体内对数据成员进行缺省值设置,虽然但此时表示为对数据成员进行赋值操作,并不是初始化,另外还可能会引起未定义行为        e.g 数据成员为const类型时,在函数体内进行赋值是未定义行为,理由是不能对一个const对象赋值。     -4.成员函数的实参传递方式-值传递(pass by value)、引用传递(pass by reference)。        尽量使用引用传递实参,并且在不需要对实参修改时尽量设为const,使其能够接受一个常量对象。     -5.函数的值返回(return by value)、引用返回(return by reference)     -6.友元,在类内中函数若添加friend 关键字,表示可以对象内的数据进行访问。        相同class 的各个objects互为友元
0 0
原创粉丝点击