C++ (P70—P96)
1 类的成员默认为私有模型
2 类的声明内不允许对数据成员进行初始化
3 类的成员函数,如果在类外定义,只需在函数类型之前加上inline就为内联函数了,如果在类内定义函数则该函数自动成为内联成员函数(建议性的),当编译器确定某个函数为内联函数时这个函数肯定不是虚函数。关于此论断查看之前博客(c++内联函数与静态函数)
4 声明对象注意:类的数据成员可以是另一个已经定义的类的对象,不能是本类的对象;对于在程序之前没有定义或者仅是引用性声明的类不能定义对象
5 构造函数:a 不能有返回值和void b 公有函数 c 若没参数,则声明对象时不要在对象后面加括号,与java不同
构造函数可以定义为内联函数,可以带默认形参值,可以重载、
6 析构函数:析构函数的函数名应为类名前加“~”,没有参数,没有返回值类型,一个类只能一个析构函数
7 只有在定义构造函数时,才可以带有成员初始化列表,如果仅是声明构造函数,则不能带有成员初始化列表
8 静态数据成员:需要在类中进行引用性声明,之后为了获得内存需要在文件作用域中进行定义性声明,此时不需再写static。可以在定义时初始化和函数中初始化,但是不能使用构造函数的参数列表初始化。
9 静态成员函数:如果是在类外定义,同样不能再写static,只能调用静态变量。静态成员函数不能定义为常成员函数(??不在一个内存范围内)。
10 友元函数的特点:不是这个类的成员函数,在可以在函数体内通过对象名访问这个类的私有或者保护成员。
可以是一个普通函数也可以是其他类的成员函数;
在类中仅是在声明时在前面加上friend体现,具体的定义应是在类外,否则意义冲突。
友元声明在公有部分、私有部分和保护部分意义相同。
11 常对象:只能访问常成员函数,不能访问非常成员函数,但是常对象能访问常成员变量和非成员变量(已验证正确),背后的机理自己思考一下;
(??在声明常对象时,会自动将对象中对应的变量提升为常变量,但是函数不会??)
常对象声明时必须初始化,并且在其他地方不能再重新赋值。
常函数:类的常成员函数不能改变成员变量的值,也不能调用该类中的非常成员函数,结合常对象的特点,对于变量,如果是常对象调用常函数此时显然
常函数可以调用非常变量和常变量,如果是非常对象调用常函数此时应该不能调用非常变量(经验证猜想不对,因此上述??中的内容不对)。
结论:常函数能被常对象和非常对象调用,常函数只能调用常函数不能调用非常函数,但是能调用非常变量和常变量。
常成员变量:注意一点,常数据成员的初始化只能通过编写带有初始化列表的构造函数来实现。
12 全局变量和局部静态变量的区别:都具有静态生存期,但是全局变量的作用域是整个文件,局部静态变量的作用域仅在所定义的函数内或者块内。
C++ (P70—P96)的更多相关文章
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
- 浅谈WEB页面提速(前端向)
记得面试现在这份工作的时候,一位领导语重心长地谈道——当今的世界是互联网的世界,IT企业之间的竞争是很激烈的,如果一个网页的加载和显示速度,相比别人的站点页面有那么0.1秒的提升,那也是很大的一个成就 ...
随机推荐
- 模拟post请求方法
2
- ZOJ 3469 Food Delivery 区间DP
这道题我不会,看了网上的题解才会的,涨了姿势,现阶段还是感觉区间DP比较难,主要是太弱...QAQ 思路中其实有贪心的意思,n个住户加一个商店,分布在一维直线上,应该是从商店开始,先向两边距离近的送, ...
- [JDBC-2] JDBC CURD
package com.amuos.jdbc.curd; import java.sql.Connection; import java.sql.ResultSet; import java.sql. ...
- C++ ODR规则与dlopen 问题
问题: 开发平台*.so插件的时候遇到相同的函数名称出现在不同的.so文件中,假设分别为a.so和b.so,b.so要使用a.so中的定义函数 a(),而在dlopen会先加载a.so然后加载b.so ...
- Base-Android快速开发框架(四)--网络操作之FastJson以及AsyncHttpClient
Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...
- codeforces 617B Chocolate
题意: 在给定01串中,问能分割成多少个子串?每个子串只有一个1. dp #include<iostream> #include<string> #include<alg ...
- 在中国Windows Azure服务中创建应用程序的一些不同之处
Azure 中的托管服务由一个应用程序(用于在托管服务中运行)和 XML 配置文件(定义托管服务的运行方式)组成.托管服务同时使用服务定义文件 (.csdef) 和配置文件 (.cscfg).有关详细 ...
- MapReduce概述,原理,执行过程
MapReduce概述 MapReduce是一种分布式计算模型,运行时不会在一台机器上运行.hadoop是分布式的,它是运行在很多的TaskTracker之上的. 在我们的TaskTracker上面跑 ...
- Hash (poj2002-Squares & poj3349-Snowflake Snow Snowflakes)
//突然发现好弱,好多基础的算法竟然都不会,哈希这种经典的算法,我貌似基本没怎么做过相关的题0.0 POJ2002 题意:给n个点,问有多少组四个点能组成正方形. 题解:枚举两个点,通过公式算出另外两 ...
- Fun with layers
Fun with layers 这篇文章的有些内容很奇怪,我根本就没有这种现象,所以暂时就这样吧 In this post, I’ll explain how to add a border, rou ...