分类 c++ 下的文章

关于 function 的基础教程参考:C++ 入门教程之四 -- Functions

当 function 的传入参数为数组时,如果我们想要得到数组元素个数可能会这样写:

void testFunc(int arr[]) {
    int count = sizeof(arr)/sizeof(arr[0]);
}

int main()
{
    int arr[] = {1, 3, 6, 8};
    cout << testFunc(arr) << endl;

    return 0;
}

sizeof function 可以返回数据占用内存空间的大小。所以用整个 arr 大小除以第一个元素大小可以得到数组元素个数。

但是测试会发现以上得到的 count 值并不是 arr 数组元素个数 4 而是 2。这是因为当 function 传入数组数据时,会自动将其转换为 pointer 指针类型。这时候使用 sizeof() 得到的不是 arr 数据所在地址的内存大小,而是这个指向 arr 数组的指针所占用内存大小。

阅读全文



inheritance 继承

inheritance 继承是面向对象编程最重要的概念之一。继承允许我们基于已有的 class 创建新的 class。这能够极大的方便我们创建应用程序。

一个 class 的属性被其他 class 继承,我们称这个 class 叫做 base class。一个从 base class 继承属性的 class 我们称其为 derived class。一个 derived class 获得所有 base class 的功能,且可以有自己独有的功能:
1.png

阅读全文


下面我们通过实际应用来介绍如果在真实环境下应用。

我们使用 Code::Blocks IDE 来进行调试。这是一个免费的 c++ 开发环境,能够应用于绝大多数使用场景。

官网:http://www.codeblocks.org/

在下载界面下载对应系统版本的安装包:http://www.codeblocks.org/downloads/26

最好安装带编译器的版本,这样就可以直接使用。

阅读全文


object 对象

Object Oriented Programming 面向对象编程是为了让编程更加接近于真实世界的理解方式。在程序中,每个 object 是一个独立的 unite 单元,拥有自己的 identify 标识,就像真实世界的某个独立物体一样。

例如一个苹果就是一个 object,它的 identify 就是名称 苹果,每个苹果都有自己独立的 attributes 属性,如颜色,大小。一个属性就是这个 object 当前状态的描述。不同 object 的 attributes 属性是不一样的,例如一个苹果是绿色的,另一个是红色的。

在正式世界中 object 都有其 behave 行为,例如汽车的 move 移动,手机的 ring 响铃。这种 object 的行为叫做 object 的 type 类型。

描述一个 object需要的元素:identify 标识,attributes 属性,behavior 行为

阅读全文