C++封装的全部总结
类
类是对现实生活中一类具有共同特征的事物的抽象
类是面向对象程序设计实现信息封装的基础。
类是一种用户定义类型,也称类类型。
类的实例称为对象。
类的实质是一种数据类型
面向对象原则
以对象为中心,以谁做什么来表达程序的逻辑,对象的所以行为都通过调用函数来实现
封装
private : 只读属性,不可被外界修改
public :可被外界修改读取
内联函数
使用关键字inline定义,编译时将函数体代码和实参代替函数的调用语句,换句话说,省去了调用函数的过程,效率更高,速度更快,但那要求逻辑简单,不可太复杂,若太过复杂,加上inline也没有用
类内定义
整个函数都定义在类里面
类内定义的成员函数,编译器会将其优先编译为内联函数,即简单函数自动编译为内联函数
类外定义
同文件类外定义
注意:关于变量名的定义m_+数据类型+名称(更规范)
class Teacher {
public:
void setName(string _name);
string getName();
void setGender(string _gender);
string getGender();
void setAge(int _age);
int getAge();
void teach();
private:
string m_strName;
string m_strGender;
int m_iAge;
};
void Teacher::setName(string _name) {
m_strName = _name;
}
string Teacher::getName() {
return m_strName;
}
void Teacher::setGender(string _gender) {
m_strGender = _gender;
}
string Teacher::getGender() {
return m_strGender;
}
void Teacher::setAge(int _age) {
m_iAge = _age;
}
int Teacher::getAge() {
return m_iAge;
}
void Teacher::teach() {
cout<<"Teach"<<endl;
}
构造函数
内存分区:
栈区:int x = 0; int *p = NUll;
堆区:int *p = new int[20];
全局区:存储全局变量即静态变量
常量区:string str = “hello”;
代码区:存储逻辑代码的二进制
构造函数在对象实例化时被自动调用
构造函数与类同名
构造函数没有返回值
实例化对象时仅用一个构造函数
当用户没有定义构造函数时,编译器自动生成一个构造函数
C++封装的全部总结的更多相关文章
- [C#] 简单的 Helper 封装 -- RegularExpressionHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- iOS开发之App间账号共享与SDK封装
上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...
- Ajax实现原理,代码封装
都知道实现页面的异步操作需要使用Ajax,那么Ajax到是怎么实现异步操作的呢? 首先需要认识一个对象 --> XMLHttpRequest 对象 --> Ajax的核心.它有许多的属性和 ...
- 用C语言封装OC对象(耐心阅读,非常重要)
用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...
- 【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~
一.写在前面 相信各位看官对retrofit和rxjava已经耳熟能详了,最近一直在学习retrofit+rxjava的各种封装姿势,也结合自己的理解,一步一步的做起来. 骚年,如果你还没有掌握ret ...
- 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)
前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...
- 封装集合(Encapsulate Collection)
封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类 ...
- CSharpGL(29)初步封装Texture和Framebuffer
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...
- CSharpGL(7)对VAO和VBO的封装
CSharpGL(7)对VAO和VBO的封装 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入门参考 ...
- Swift -- 对AFN框架的封装
Swift -- 对AFN框架的封装 一.封装AFN的目的 简单的说: 解耦 日常工作中,我们一般都不会去直接使用AFNetWorking来直接发送网络请求,因为耦合性太强,假设有多个控制器都使用AF ...
随机推荐
- Mysql的transaction实现(转)
(http://www.blogjava.net/i369/archive/2007/04/29/108906.html) transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库 ...
- jQuery核心探究
动画animate.animate({}, { duration: 5000, progress: function (now, progressNum) {}, complete: function ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用
1.前言 学习ArcGIS Runtime SDK开发,其实最推荐的学习方式是直接看官方的教程.示例代码和帮助文档,因为官方的示例一般来说都是目前技术最新,也是最详尽的.对于ArcGIS Runtim ...
- 阻塞IO, 非阻塞IO, 同步IO,异步IO
阻塞IO, 非阻塞IO, 同步IO,异步IO 介绍 先说明几个概念 用户空间与内核空间 为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间(内存)划分为两部分,一部分 ...
- vos设置禁止被叫特定号码段特定区域
问题: 为了防止卡线遭投诉被运营商停,给公司带来损失,对一些特定号段特定区域要进行限制,不让客户呼出 打开VOS3000 落地网关——补充设置——落地被叫前缀——禁止 添加禁止号段 具体案例: 如填写 ...
- kubernetes组件helm
1.安装helm Helm由客户端helm命令行工具和服务端tiller组成,Helm的安装十分简单. 下载helm命令行工具到master节点node1的/usr/local/bin下(只需要在其中 ...
- framework7 手风琴页面有滚动条时再次点开手风琴item滑动里面内容消失的解决方法
在手风琴的ul外面的div加入最小高度min-height:1000px,问题解决 示例代码: <div class="list-block accordion-list" ...
- 关于VMware给系统分区扩容的一点经验
我的VMware版本是8.0.6 build-1035888,里面安装的是Windows XP SP3 首先,在VM关机状态下使用Hard disk设置中的Utilities下的Expand给整个磁盘 ...
- p2597 灾难
我的思路 代码: #include<cstdio> #include<iostream> #include<algorithm> #include<vecto ...
- cuda数组的拷贝
原文链接 简单描述一下自己要做的事情:(1)CPU三维的vector--->(2)CPU三维数组--->(3)转换到GPU中的三维数组--->(4)转换到CPU中的三维数组,而其中问 ...