对象与类

1.有个不成文的规定:

由基本数据类型所声明的变量,称为变量。

由抽象数据类型(类)所声明的变量,称为对象。

2.给数组指针分配空间malloc的问题.

对于二重指针是分两步,比如: float **Cluster=(float **)malloc(sizeof(float *)*K) for(i=0;i<K;i++) Cluster[i]=(float *)malloc(sizeof(float)*N);

你需要分两步做,第一次分配K个指针类型的空间来存放指针,然后再循环分配除这K个指针指向的数租

int (* p)[12];这是数组指针,指针的类型为(*)[12],即指针指向的类型为12个元素的整形数组。
p = (int*) malloc(12*sizeof(int));这里说明p的类型为一个整型 int *。
显然类型不匹配!


int (* p)[12];
p = (int (*)[12]) malloc(12*sizeof(int));

 char (* p)[2][3];
 p = (char (*)[2][3]) malloc(6*sizeof(char)); 

 char (* p)[][3];
 p = (char (*)[][3]) malloc(6*sizeof(char));高维不可省略

  对于二重指针是分两步,比如:
   float **Cluster=(float **)malloc(sizeof(float *)*K)
    for(i=0;i<K;i++) 
    Cluster[i]=(float *)malloc(sizeof(float)*N); 

///

理想的接口应是简单明确的,对象才容易更换。欲得到单纯的接口,最常见的方法是让对象所包装的细节部分具有高度紧密的相关性,也就是所谓的“凝聚性”;创造凝聚性有以下两种途径:

  1)以函数为中心,将常相互调用的有关函数结合起来,构成较独立的单元,统称为模块(Module)。而不考虑数据的角色。

  2)以数据为中心,将直接处理到该数据的各有关函数结合起来,成为独立的单元,统称为对象(Object)

对象将数据及有关函数包装起来,但允许对象内的函数能调用其他对象内的函数。第二种方法成为面向对象(Object-Oriented)方法。简而言之,对象的内部细节就包含两部分:

                  1)数据成员;统称为对象的数据属性(Attribute)

                  2)成员函数 ;用来直接处理的程序,统称为对象的方法(Method)。

//

在OOP程序中,通常由下述两项定义来叙述对象:

   1)类定义。叙述对象内部含有哪些数据成员,以及含哪些有关的函数。

   2)接口定义。叙述对象内部的函数中,有哪些是允许别的对象经由此接口而调用的。如何让别的对象知道与此对象沟通。

 

///

在开发软件时,不仅需要描述对象的属性和行为,而且必须描述对象之间的沟通及其结构面的链接关系。这种连接关系包括组合(composition)和结合(association)关系等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值