c++基础概念1---类与对象
1、概念
对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
对象的载体:人、电脑、风扇、桌子、游戏、旅游、棋盘系统.....对象的描述:特征/属性--变量--数据成员功能/方法--函数--函数成员
类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是 类,类的具体化(实例化)就是对象,类实际上就是一种数据类型 。
女朋友1 ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)女朋友2 ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)女朋友3 ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)------女朋友1、2、3 是具体的事物(人),也就是对象------提炼出共同点,抽象出一个类:GirlFriend类
2、设计和使用一个类
1) 找出对象 归类 ---时间类
2) 抽象:(提炼共同点)
特征/属性:时 分 秒
功能/方法:显示时间 设置时间
3) 封装
把对象的属性和服务结合成一个独立的系统单元。尽可能屏蔽对象的内部细节。对外形成一个边界(或者说一道屏障), 只保留有限的对外接口使之与外部发生联系。
4) 实例化对象
定义一个类的对象,通过对象调用类中的成员
3、类的简单设计格式
class 类名{类的特征(属性) 成员变量类的行为(功能) 成员方法, 函数};
比如:设计一个女朋友类
class GirlFriend{//属性--数据成员char name[256];int age;float score;//行为--函数成员void print(){cout<<name<<age<<score<<endl;}int playGame(){cout<<"playGame"<<endl;}int study(){cout<<"study"<<endl;}};
4、结构体与类
|
C语言的结构体 |
C++的类 |
|
struct Student{ char name[256]; int age; float score; //只能定义函数指针 void (*playGame)(void); void (*eat)(void); void (*study)(void); }; |
class Student{ //属性 char name[256]; int age; float score; //行为---函数 void playGame(void) { } void eat(void) { } void study(void) { } }; |
|
成员默认公有--对外开放 struct Student Jack; Jack.age = 23;//正确 |
成员默认私有--对外隐藏 Student Jack; Jack.age = 23;//错误 |
5、类的成员权限
成员的性质由关键字public、protected、private 决定 ,如果在进行类的声明时不写上面这些关键字,默认都是私有的。
public 公有 公有段的成员是提供给外部的接口protected 保护 保护段成员在该类和它的派生类中可见private 私有 私有段成员仅在类中可见
class 类名{public://公共权限 类的外部 类内部 类的派生类 友元protected://保护权限 类内部 类的派生类 友元private://私有权限 类内部 友元};
比如:
//类的实例化,也就是创建一个类的对象GirlFriend mygirl1;mygirl1.playGame(); //访问错误,因为类中默认的权限是私有的,不能在类的外部访问私有成员
所以应该给成员添加权限:
//设计一个类class GirlFriend{public://行为--函数成员void print(){cout<<name<<age<<score<<endl;}int playGame(){cout<<"playGame"<<endl;}int study(){cout<<"study"<<endl;}private://属性--数据成员char name[256];int age = 20; //C++98标准不支持这种写法 C++11才支持float score;};
6、如何访问类中的成员
-
类内部的成员访问其它成员,直接访问
-
类的外部 访问类的成员,通过对象才能访问
7、特点
1)类的属性变量成员一般设置为私有权限,可以自己控制属性的读写权限,确保数据的安全性。还可以将用户传入的数据进行检测。
8、类的实例化
1). 静态分配内存GirlFriend mygirl1;mygirl1.playGame();2). 动态分配内存GirlFriend *mygirl1 = new GirlFriend;mygirl1->playGame();
9、类的成员内部声明,外部定义
//设计一个类class GirlFriend{public://行为--函数成员void print();int playGame();int study(){cout<<"study"<<endl;}private://属性--数据成员char name[256];int age = 20; //C++98标准不支持这种写法 C++11才支持float score;};//在类的外部进行定义void GirlFriend::print(){cout<<name<<age<<score<<endl;}int GirlFriend::playGame(){cout<<"playGame"<<endl;}
更多推荐
所有评论(0)