c++ 222
【成功者的习惯】
1.背后说别人好话;听到某人说别人坏话时只微笑;
2.过去的事不全让人知道;
3. 尊敬不喜欢你的人;对事无情,对人有情;
4.多做自我批评;为别人喝彩;
5.感恩;学会聆听;
6.说话时常用“我们”开头;
7.喜欢自己。
1, c 的局部/全局变量声明要在所有的函数之前 , 所有的可执行语句之前.
2, 函数原型,c可省略参数而在声明明完整,c++必须说明.
3, c++使用const 定义常量 比define 更安全灵活.
4, c 不存在函数重载,
5, malloc()/free() 要包含头文件, new/delete; malloc 不知道存储类型,其返回类型要强制转换. 无法调用构造函数.
6, OO 基本特征 封装 继承 多态
7,封装就是将抽象到的 数据 方法 形成一个类.
8, 继承代码的共享是静态的, 派生类自动共享基类代码段. 封装代码是动态共享的,某个类多个对象运行共享.
9, 组合 OO概念, 某个对象包含其它对象的机制, 组合分 聚合 和 关联
某个类是其它类的 组件, 就会聚合. 某个类需要其它类的服务 就会关联.
10, 动态特性 多态 虚函数 动态联编
多态是通过虚函数表 实现的, 所有对象共享该表.
联编 静态联编出现在编译链接,
11, 对象引用 参数为引用类型, 对象指针 参数为指针类型. 对象引用访问成员使用 点, 对象指针访问成员使用指向.
12, 可以将类体整个定义部分放头文件中, 类的大扩号后加分号.
13,在类的成员中调用非成员函数 , 必须加上::
14, 三种类 类, 结构, 联合 class struct union
15, 构造函数 给对象分配空间. 及对象初始化工作. 必须与类名相同 . 没有返回值.
16,拷贝构造 基于同一类的其他对象的构件及初始化. 三种情况 用对象作值传递, 返回值是对象,用对象作初始化,
17, 如果数据成员中有指针对象, 要用深拷贝.
18,静态成员变量 静态成员函数 都与对象无关, 属于整个类, 类范围共享数据的方式 . 静态成员函数通过类名 或 对象名访问 .
不可调用非静态变量, 不可为虚函数 . 缺少this指针. (通过类名访问)
19, 当类A内声明 某函数 或类 为友元, 该函数或类 可以直接访问 A中所有成员(私有,保护,公有).
20, 派生 不能继承基类的构造和析构,可以用全局分辨符::直接访问基类中的同名函数
21,虚基类, 先调用 虚基类构造,再非虚基类,最后调用派生类构造 . 如果虚基类 由非虚基派生,构造时先调用非虚基
22,struct 默认访问权限是public class 是private , 涉及继承关系时亦当如此.
23,派生类构造时 可以向基类传参数
24,binding 实现函数调用的, 分为早绑定 和晚绑定. 晚绑定 又名 动态绑定 或运行时. 即在编译阶段 编译器不知道对象实际类型但能找到和调用正确函数体.
为了实现晚绑定,必须在基类中使用virtual 虚函数. 晚绑定只对虚函数.而且只使用一个虚函数基类. 晚绑定是多态的基础.
25, 虚函数 是一种动态的重载方式 ,派生类中重载的虚函数返回类型和 参数与基类中原型相同.
虚函数代表 扩充应当发生/实现/修改 的地方. 多态是通过指向基类的指针或引用 来操作的.
26,纯虚是必须实现,否则不能实例化.用于规范而非多态.
27,带纯虚的类叫抽象类, 主要用于标准化,
28,基在多态方面的支持, 基类可以调用 派生类中的同名成员函数.
29,编译期多态无论是 时间空间都比 运行期多态要好,.
- 构造函数中调用自己类中实现的虚函数 会实行静态绑定. ,
- 析构函数可以虚, 将形成动态绑定.
30, 地址是内存单元编号, 指针用于存放内存地址.编号是地址,地址是指针 . 间接寻址操作符* 又称取内容运算.
指针是一种值,可以存储/求值/传递/返回. 引用有类型但不是值.
指针变量的声明与指向对象类型兼容, 引用是现有对象别名,是间接访问形式.
不存在空引用,必须创建时就初始化.指针可以为空.
一个引用必须永远指定一个对象,不可改变.
31, 变量的指针 是指变量的地址. 指针变量 存储的是 数据的地址,用于指向另一个变量.
32, 不同对象的指针比较 是对象同一性.
33, 声明函数指针时, 即使没有参数也要带一对括号. int (*f1)(int i)
34, const 修饰*
const 在 * 之前, 常量指针,所指是常量 内容不可变.
const 在 * 之后, 指针常量,所指地址不可变.
35, 值的定义
- 能被存储
- 与数据结构结合
- 作为参数传递或返回
- 能被求值
36,数组名是常量指针, 数组名在表达式中不可修改.
37,指针数组里的元素都是某一类型指针, 数组名是常量指针,不能进行 增量运算.例如字符串数组
38,常见指针问题
- 指针初始化
- 越界
- 指向局部变量
- 指向转移
39,字符串是一个常量指针 , 与数组相同意义,指向字符串第一个字符的指针.
40, 字符串函数
strcpy(char *dest,const char *src);strncpy(char *dest,const char *src,size);//copy
strcat(char *dest,const char*src);strncat(char *dest,const char* src,size);//
strcmp(const char*s1,const char*s2);
strlen(const char *s);
strchr(const char*s,char c); //扫描s里是否有c ,如果有则返回第一次出现的位置指针.没有返回null.
strstr(constr char*s1,const char*s2);//这里s2是子串
41,字符数组 可以定义时整体赋值, 但不能在赋值语句中整体赋值. 字符指针变量可以. 指针变量的值可以改变的, 数组名 不可以.
42,单目运算符重载为成员函数,双目重载为友元函数. 例如 使用友元函数重载复数四则运算符,由于没有this指针,参数是引用类型.
43,new delete 重载分为全局 和局部 两种,一般一个类的局部方式. 使用malloc() , calloc() ,reallocfenp() 分配的空间不要用delete释放
44,成员运算符 和 友元运算符
- friend <类型> operator@(参数表)
- <类型>operator<运算符>(<参数表>)
{
函数体
}
- <类型>operator@(参数表)
- <类型> 类名:: operator <运算符>(<参数表>)
{
如果成员运算符是单目的, 参数表为空,当前操作数通过this 指针 隐含传递.
45,相同结构体变量 可以相互赋值 , 数组不可以 通过数组名赋值.
am. official 7-11
pm. audition 12 - 17
nit. research or call me study 18-21
c++ 222的更多相关文章
- Android Weekly Notes Issue #222
Android Weekly Issue #222 September 11th, 2016 Android Weekly Issue #222 ARTICLES & TUTORIALS Fo ...
- PIC10F200/202/204/206/220/222/320/322芯片解密程序复制多少钱?
PIC10F200/202/204/206/220/222/320/322芯片解密程序复制多少钱? PIC10F单片机芯片解密型号: PIC10F200解密 | PIC10F202解密 | PIC10 ...
- Acadia Lab 228 + Lab 222
又是一对串烧实验,布好线后非常方便就可以一起完成. 连线方案一模一样: Lab 228 数码管骰子 核心代码如下: def loop() : global cnt global btn_read,se ...
- 微软Nokia 222:可拍照可上网 售价37美元 32GB的microSD卡扩展
腾讯科技讯 8月27日,在几乎所有厂商都在智能手机领域大肆拼杀的时候,微软日前却悄悄地发布了一款功能手机Nokia 222. 目前,尽管全球许多发达国家的居民都对互联网已经再熟悉不过了,但事实上全球依 ...
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
package com.lw.HomeWork1;//包名 2 import java.util.Scanner; public class Demo18 { /** * @param args */ ...
- hduoj 3459 Rubik 2×2×2
http://acm.hdu.edu.cn/showproblem.php?pid=3459 Rubik 2×2×2 Time Limit: 10000/5000 MS (Java/Others) ...
- 3.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
public static void main(String[] args) { Scanner scanner=new Scanner(System.in); ...
- c 整数的逆序输出 输入3,2就算 2+22+222的结果
#include<stdio.h> #include<math.h> //整数逆序输出 void nixu() { int num,i; i = ; scanf("% ...
- leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
完全二叉树的定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树. 解题思路:将树按照层进行遍历,如果 ...
- 跳跃表 https://61mon.com/index.php/archives/222/
跳跃表(英文名:Skip List),于 1990 年 William Pugh 发明,是一个可以在有序元素中实现快速查询的数据结构,其插入,查找,删除操作的平均效率都为 . 跳跃表的整体性能可以和二 ...
随机推荐
- SqlServer——神奇代码1之Update
说明:一个带有update的循环的代码.很简单,但是在QQ群里问了,应该说是很少有人注意这个问题,也就是很少有人真的理解SQL中的Update. 代码如下: if object_id('tempdb. ...
- Django--admin后台
需求 通过后台和models操作数据库表 实现 1.后台中看到数据库中的表 app01/admin.py 1 2 from app01 import models admin.site.regist ...
- Docker保存修改后的镜像
1.启动镜像并做出修改 docker run -it centos /bin/bash [root@afcaf46e8305 /]# 注意afcaf46e8305是产生的容器ID,前面运行的时候不要- ...
- U14.04 teamviewer install
转载http://www.cnblogs.com/kunyuanjushi/p/5205639.html 安装i386库 sudo apt-get install libc6:i386 libgcc1 ...
- HDU 4803 Poor Warehouse Keeper(贪心)
题目链接 题意 :屏幕可以显示两个值,一个是数量x,一个是总价y.有两种操作,一种是加一次总价,变成x,1+y:一种是加一个数量,这要的话总价也会相应加上一个的价钱,变成x+1,y+y/x.总价显示的 ...
- clojure-emacs-autocomplete
1. https://github.com/clojure-emacs/cider#keyboard-shortcuts 2. install emacs 24.5 3. http://clojure ...
- (一)ASP.NET中JavaScript的中英文(多语言)实现方案
PS: https://github.com/hzlzh/Front-End-Standards/wiki/HTML-CSS-JS-i18n 本文原始思路起源于此网址,请自行查看. 本文只是简单的一个 ...
- 查看Eclipse版本号的方法及各个版本区别 Eclipse选择标准
这篇文章主要介绍了查看Eclipse版本号的方法及各个版本区别 Eclipse选择标准,方便初学者选择适合自己的版本,需要的朋友可以参考下 Eclipse 是一个开放源代码的.基于Java的可扩展开发 ...
- 基于 Django 的手机管理系统
前段时间和小组一起完成数据库作业,觉得收获挺多的,分享到博客来. 一.概述 打算通过设计数据库,然后结合 Python 框架Django,实现在网页上对数据库的增删改查(本例以手机的管理为例,不考虑订 ...
- 【bzoj2437】[Noi2011]兔兔与蛋蛋 二分图最大匹配+博弈论
Description Input 输入的第一行包含两个正整数 n.m. 接下来 n行描述初始棋盘.其中第i 行包含 m个字符,每个字符都是大写英文字母"X".大写英文字母&quo ...