C++基础-类的基本概念
来源:互联网 发布:研究生软件辅导机构 编辑:程序博客网 时间:2024/05/21 05:06
序言
大一的时候学过一些C++的东西,但是主要以C为主,后来C++也很少用到,现在重新学习C++基础知识。
封装
面向对象程序设计最基本的特性。
作用:
[1] 把属性和方法进行封装:把数据(属性)和函数(方法)合成一个整体,在计算机中用类和对象实现
[2] 对属性和方法进行访问控制:访问权限的限制。把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类或者对象操作,对不可信的进行信息的隐藏
类和对象
类:类是把属性和方法进行封装,同时对类的属性和方法进行访问控制。通常类的定义包含两部分内容
[1] 属性:如“人类”这个类,属性包括姓名、年龄、体重等
[2] 方法:如“人类”这个类,方法包括吃饭、睡觉、说话等行为
- 对象:现实世界的实体抽象,如“人”、“自行车”等
类的定义
class 类名{ public: //方法或属性 protected: //方法或属性 private: //方法或属性};//类定义时,public,private和protected关键词的出现顺序可以是任意的
class Point{ public: void setPoint(int x, int y); void printPoint(); private: int xLabel; int yLabel; protected: int quadrant;};
类的实现
类的实现就是完成其方法的过程,上述代码只是完成了属性和方法的声明。[1] 类定义时完成对成员函数的定义
[2] 类定义的外部进行完成:需要加作用域操作符
//类内实现:点类class Point{ public: void setPoint(int x, int y) { xPos = x; yPos = y; } protected: ... private: ...};//类内实现:圆类class Circle{ private: double r; //圆类的半径属性 public: void setR(double r) //设置圆的半径 { this->r = r; } double getR() //获取圆的半径 { return this->r; }};//类外实现void Point::setPoint(int x, int y){ xPos = x; yPos = y;}
- 类的使用
int main(){ Point M; //类创建对象 M.setPoint(10, 20); //函数调用 M.printPoint(); //函数调用 cout<< M.xPos <<endl; //通过对象访问属性 return 0;}
类的成员访问权限
为什么要有访问权限限制,有些需要给外面看的,也就是对外接口,那么就是public;不想让别人知道内部的实现细节,那么就是private;如果不想让别人知道,想让自己的孩子什么都知道(这里涉及到继承),那么就可以作为protected
public:
- 可以被 该类中函数 + 其友元函数 + 派生类的函数 + 该类的对象访问;
protected:
可以被 该类中函数 + 其友元函数 + 派生类的函数 访问;
不能被该类的对象访问
private:
只能由 该类中函数 + 其友元函数 访问;
不能被 该类的对象和派生类(子类) 访问
类的继承方式
public 继承:公有继承时,不改变基类成员的访问权限
protected 继承:保护继承时,将基类中public成员变为子类的protected成员,其它成员的访问权限不变
private 继承:私有继承时,使得基类所有成员在子类中的访问权限变为private
Acknowledgements:
http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html
http://www.cnblogs.com/cocos2d-html/p/3629146.html
http://cnmtjp.blog.51cto.com/204390/36548
http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html
2017.09.25
- C 语言基础 ---基本概念
- C++基础-类的基本概念
- 黑马程序员****C语言基础****C语言的基本概念
- c语言—指针基础(1:指针的基本概念)
- Objective-C---1---类的有关基本概念
- C语言的基本概念
- C指针的基本概念
- C、C++的一些基本概念
- 【C语言】指针的基本概念
- C/C++中流的基本概念
- C语言指针的基本概念
- C/C++中流的基本概念
- 黑马程序员----objective-C 类与对象基础篇(一)【基本概念】
- 复习C#(3)——类的基本概念
- c语言003---c语言的基本概念
- 【C/C++】面向对象的基本概念
- C++/C程序的基本概念(0)
- C语言:C语言的一些基本概念
- spring boot 事务管理
- 双联通&&强连通&&割点桥板子
- Happen-Before规则
- mac 下开启任何来源
- 牛客《剑指Offer》-- 合并两个排序的链表
- C++基础-类的基本概念
- 【Ethereum】以太坊ERC20 Token标准完整说明
- linux下cpu压力负载测试
- Java-Collection源码分析(一)——Collection接口和AbstractCollection类
- C#梳理【集合Collection】
- 3Sum
- 欢迎使用CSDN-markdown编辑器
- 影子银行初探
- unknow host service.gradle.org, you may need adjust the proxy settings in gradle