c++.net学习笔记
Notes for c++ learning
程序根据什么特征来区分调用哪个重载函数?
只能靠参数而不能靠返回值类型的不同来区分重载函数。
编译器根据参数为每个重载函数产生不同的内部标识符
- 在Visual Studio .Net开发环境中,在代码编辑器内输人对象的名称后将自动显示出对应的属性、方法、事件列表,以方便选择和避免书写错误,这种技术被称为_智能感知_
- 一个解决方案可以有多个项目
- CLR是公共语言运行库
- 跟踪句柄——(gcnew)相当于c语言的指针
- 引用不分配内存——不能为空,因为不是定义一个变量,只表示是该用户名是目标变量名的一个别名。 引用前面用&符号,引用使用很简单比较指针(某一变量的位置)。 引用是给某一变量多取一个别名,当建立引用时,程序用另一个变量或对象目标的名字初始化它。缺点是定义之后不能改变8
- 托管代码和非托管代码:为CLR而编写以及使用CLR服务的代码叫"托管代码",而那些未使用CLR服务的代码(也就是你多年以来一直编写的代码),依赖于平台和语言叫"非托管代码"。
- rand()_生成伪随机数;rand()%max表示产生0-max的随机数;a+rand()%(b-a+1)表示产生【a,b】之间的整数。产生不重复的随机数
- array与arraylist:array是本地的程序组件或者数据结构,但是arraylist是一个来自Java集合类的类,一个接口(API);array仅提供一个length属性来告诉你array里有多少个插槽,例如可以存储多少个元素。但arraylist提供一个size()方法来告诉你当前时间点存储了多少个元素;array还可以设置多维数组,但是arraylist并不支持你指定维度。
- 值类型的对象包含的是自身的数据内容。引用是引用对象的跟踪句柄,包含的是对象的地址
- 面向对象:类的几个特殊函数:类的构造函数、复制构造函数、析构函数、终结器,构造函数:C++规定,一个类的构造函数必须与相应的类同名,它可以带参数,也可以不带参数,与一般的成员函数定义相同,可以重载,也可以有默认的形参值。构造函数不能指定函数返回值的类型,也不能指定为void类型。默认构造函数:实际上,在类定义时,如果没有定义任何构造函数,则编译自动为类隐式生成一个不带任何参数的默认构造函数,由于函数体是空块,因此默认构造函数不进行任何操作,仅仅为了满足对象创建时的语法需要。
- 与构造函数相对应的是析构函数。析构函数是另一个特殊的C++成员函数,它只是在类名称前面加上一个“~”符号(逻辑非),以示与构造函数功能相反。每一个类只有一个析构函数,没有任何参数,也不返回任何值。
- 析构函数的功能是用来释放一个对象,在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。在_C++/CLI_中,还提供另一种清理机制,称为finalizer(译为“终结器”)。定义终结器的方式与定义析构函数的方式类似,定义类的终结器的方式与定义析构函数的方式类似,其区别在于需要通过“!”符号来代替析构函数中的“~”符号。
几个特殊函数调用顺序:
1.对象的创建:开始之初,调用构造函数,构造对象
2、默认构造函数:
3、对象的析构:使用完毕、调用析构函数,释放对象所占用空间
4、终结器函数:终结器是在销毁该引用类对象时由垃圾回收器自动调用的。
5、复制构造函数(拷贝构造函数):管理复制对象时的空间接口实现多继承:比类的内涵更广。
- 9.20
- 虚函数——virtual《函数名》(形参表){函数体}:为了实现某一功能而假设的函数
在一个派生类中重新定义基类的虚函数是函数重载的另一种特殊形式,但它不同于一般的函数重载。一般的函数重载,只要函数名相同即可,函数的返回类型及所带的参数可以不同。要求所带的参数可以区分是调用哪个重载函数。当重载一个虚函数时,即在派生类中重新定义此虚函数时,则要求函数名、返回类型、参数个数、参数类型以及参数的顺序都与基类中虚函数原型完全相同,不能有任何的不同。虚函数在调用的时候根据当前对象,优先调用对象本身的虚成员函数。这有点像名字支配规律,不过虚函数是动态绑定的,是在执行期“间接”调用实际上欲绑定的函数。也就是说程序运行到此处才动态确定。
10.19
- show()方法显示窗体后,不影响该程序其他窗体的使用。显示窗体后,后面的代码会继续执行
showDialog()方法显示窗体后,只能在此窗体上进行操作。只有当窗体关闭之后,后面的代码才会继续执行。 - nullptr是一个字面值常量,类型为std::nullptr_t,空指针常数可以转换为任意类型的指针类型。
Trim()功能:删除字符串中多余的空格,但会在英文字符串中保留一个作为词与词之间分隔的空格。
c++.net学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- 70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)
基础与框架 1.String类能被继承吗,为什么 2.String,Stringbuffer,StringBuilder的区别? 3.ArrayList和LinkedList有什么区别 4.类的实例化 ...
- synchronized和volatile区别
不同一: synchronized可以修饰方法, volatile只能修饰变量 不同二: synchronized是同步的 volatile修饰的变量具有可见性.
- fineuploader php服务端
新版本的fineuploader项目中已经没有现成的php server端,需要额外使用composer进行安装,折腾好久才下下来,在此分享出来给大家. 下载地址: http://files.cnbl ...
- 起言-----UE4学习方法
1.bilibili 2.官网教程 3.我觉得以上两个就够了 官方文档链接 https://docs.unrealengine.com/ 官网在线视频链接 https://learn.unrealen ...
- Task.Factory.StartNew 测试
到底该用多少线程?线程数.CPU核心数.本地计算时间.等待时间的关系 线程数 = CPU核心数 * ( 本地计算时间 + 等待时间 ) / 本地计算时间 下面是Task.Factory.StartNe ...
- idea上传项目到github
1.在上传项目之前需要先在idea中确认两个配置,一个是git的执行位置,电脑上没有安装git的需要提前安装(下载git软件并且安装,非github desktop),安装之后再idea的settin ...
- java 获取当前年份 月份,当月第一天和最后一天
获取当前年份 月份,当月第一天和最后一天,工作中会经常用到,下面是代码: package basic.day01; import java.text.SimpleDateFormat; import ...
- python 虚拟环境安装与卸载
Ubuntu16.04 安装 卸载 pip原创Solarzhou 发布于2019-06-12 21:50:28 阅读数 2001 收藏展开 实验环境Ubuntu16.04:VMware15: 问题描述 ...
- CentOS 7 离线环境安装nginx时报错:./configure: error: C compiler cc is not found
先说解决方法: 在nginx目录下,查看objs/autoconf.err文件,该文件记录了具体的错误信息 vi objs/autoconf.err 一般就是缺少一些文件,因为我的gcc.g++也是离 ...
- Spring Boot Failed to load resource: the server responded with a status of 404 ()
出现错误: Failed to load resource: the server responded with a status of 404 () 但是其他页面正常显示: 原因: 浏览器看一下: ...