面向对象程序设计方法以及类

2019-05-02  本文已影响0人  波洛的汽车电子世界

注:以下大部分内容来源于 coursera 课程《C++程序设计》
基本概念:

  1. int的大小: 操作系统16位的时候,int 2字节,操作系统32位的时候,int 4字节,由于32位系统之前占主流地位,实际现在就算是64位系统,出于兼容性考虑,int也是4字节的。

结构化程序设计

面向对象程序设计方法

一类事物 类 Class
共同属性:数据结构 (用多个变量描述) data
行为:函数(作用) function

拓展——从客观事物抽象出类

类的定义

class 类名{
访问范围说明符:
成员变量1
成员变量2
成员函数声明1
成员函数声明2
};

例子1:写一个程序,输入矩形的宽和高,输出面积和周长
分析:
矩形的属性(成员变量):宽和高
对矩形的操作(成员函数):设置宽和高;计算面积;计算周长

int w;
int h;
Init();
Area();
Perimeter();
class CRectangle{
public:
int w;
int h;
void Init(int w_, int h_){
w = w_;
h = h_; }
Area(){return w*h;};
Perimeter(){return 2*(w+h);};
};//必须有分号

int main(){
int w,h;
CRectangle r; //声明一个类,r是一个对象
cin>>w>>h;
r.Init(w,h);
cout<<r.Area()<<endl;<<r.Perimeter();
return 0;
}

此例子中,类定义的变量r,也就是类的实例,就是我们称的对象。

访问类的成员变量和成员函数

CRectangle r1,r2; 
r1.w = 5;
r2.Init(3,4);
CRectangle r1,r2; 
CRectangle *p1 = &r1; 
CRectangle *p2 = &r2; 
p1->w = 5;
p2->Init(3,4);
CRectangle r1,r2; 
CRectangle &rr = r2; 
rr.w = 5;
rr.Init(3,4);

调用函数的输出方式

void PrintRectangle(CRectangle &r){
cout<<r.Area()<<","<<r.Perimeter();
}
CRectangle r3; 
rr.Init(3,4);
PrintRectangle(r3);

类的成员函数的另一种写法

class CRectangle{
public:
int w;
int h;
int Area();//成员函数仅在此处声明,但是没有具体操作
int Perimeter();
void Init(int w_, int h_);
};


int main(){
int w,h;
CRectangle r; //声明一个类,r是一个对象
cin>>w>>h;
r.Init(w,h);
cout<<r.Area()<<endl;<<r.Perimeter();
return 0;
}

当成员函数定义在类之外,怎么区分它是一个成员函数而不是普通函数呢?用双冒号::。调用的时候也只能用对象/对象的指针/对象的引用来调用,不能当做普通函数来调用

int CRectangle::Area(){
return w*h;
}
int CRectangle::Perimeter(){
return 2*(w+h);
}
int CRectangle::Init(int w_, int h_){
w = w_;
h = h_;
}

类成员的可访问范围

上一篇 下一篇

猜你喜欢

热点阅读