c++学习笔记(新手学习笔记,如有错误请与作者联系)
逗号”,“运算符:a = 公式1,公式2;把公式1的结果放进公式2中进行运算,如:
a = 3*5 , a*4;
计算结果:a = 3*5*4=60;
typedef:类型别名,为已有类型另外命名
typedef 已有类型名 , 新类型名
using 新类型名 = 已有类型名
如:
tepedef double Area , Volume;
using Area = double;
枚举类型:将全部可取值一一列举出来(不限定作用域类型说明,继承于c语言)
词法形式:emum 枚举类型名 {变量值列表},如:
enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT}
默认值:从0开始,一次递增,如:0,1,。。。
可以在定义的过程中给枚举赋初始值,后面依旧依次递增,如:
enum Weekday {SUN,MON,TUE=,WED,THU,FRI,SAT}
则,该枚举的值应依次为{0,1,10,11,12,13,14}
auto类型和decltype
auto:编译器通过初始值自动推断变量的类型
decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
例如:auto val = val1+val2;
auto的类型取决于val1+val2的类型
decltype(i) j = 2;
定义变量j,其初始值为2,类型与i相同
析构函数:
构造函数:对象在创建的时候自动调用的一个函数
析构函数:对象释放的时候自动调用的一个函数
特点:
1.析构函数的参数列表必须是void,不带有参数
2.析构函数没有重载
3.默认的析构函数什么都不做,类比于默认的构造函数
创建方式:
~类名()
{
}
对于一个指针对象时,在delete释放对象时才能被调用。
临时对象:
临时对象的创建方式:类名(参数);
作用域只是当前语句。
关于new和malloc,delete和free
参数:malloc需要显示地指出所需内存的尺寸,而new不需要,使用sizeof来实现
返回类型:new的返回值类型为指针,不需要强制类型转换,而malloc返回值为void*指针,因此需要强制类型转换为我们所需要的
如:CStu* cs = (CStu*)malloc(sizeof(CStu));
转载:https://blog.csdn.net/nie19940803/article/details/76358673
同理,delete可以触发析构函数,而free不能触发析构函数
this指针:
如:
this->a = a;
this表示这个类中,前面申明的a,后面的a表示该局部变量中的a
相当于java中的 : this.a=a;
静态成员变量,类外初始化规范,如:
static int a; int CStu::a=;
静态成员变量也不能在类中进行初始化,只有静态整形常量才可以在类中进行初始化,如:
public: static const int a = 13;
内联函数:
形式:在普通函数前面加上inline,如:
与普通函数对比,
普通函数:执行到被调用方法时,跳到被调用方法来执行;
内联函数:执行到被调用方法时,把该方法插入到调用的位置进行执行
优缺点:内联函数占用空间大,但是执行效率比较高
运算符的重载:
形式如:
Source.cpp:
void operator+(Number num,int x)
{
cout << (num.a+x) <<endl;
}
int main()
{
Number nnn;
nnn+;
system("pause");
return ;
} Number.h:
public:
int a;
double b;
运行结果:

对象之间不能直接使用基本运算符进行计算的,而运算符的重载则实现了直接对对象使用操作符进行运算。
说明:该方法没有返回值,不能实现连加功能,若要实现连加功能,需要将void换成需要的返回值类型。
动态分配内存:
malloc:(int *) malloc(4*5); //不会初始化
calloc:calloc(4,5); //初始化为0
free:释放内存
realloc:重新分配内存
形式参数和实际参数
形式参数:一般定义的时候的参数,double,int
实际参数:一般调用的时候传入的实际参数,(10,20)
GetProfileString 为win.ini初始化文件中指定的条目取得字串
atoi函数把字符串转换成整型数
strlen():
返回字符串的长度
strcat():
是一个复制字符串的函数
了解strcat函数函数功能:
(1)函数原型:char *strcat(char *dest, const char *src);
(2)函数功能:dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。
c++学习笔记(新手学习笔记,如有错误请与作者联系)的更多相关文章
- selenium 学习笔记 ---新手学习记录(1) 问题总结
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...
- selenium 学习笔记 ---新手学习记录(10) 问题总结(java)--poi--excel 操作
1.当我使用poi想要操作xlsx时,报错,解决方法下载xmlbeans-2.6.0.jar架包,引入即可.点我下载 https://yunpan.cn/cSdVqp6e4v6Jk 访问密码 2c5 ...
- selenium 学习笔记 ---新手学习记录(9) 问题总结(java)
1.百度搜索目标--实例 boolean flag; //点击次数 int shcs=3; int i=0; //窗口焦点控制 String detailWindowHandle = null; // ...
- selenium 学习笔记 ---新手学习记录(8) 问题总结(java)
1.获取执行js代码后的返回值 //获取滚动距离 String jl="return $('#chapterul li').height();"; Long jlhq=(Long) ...
- selenium 学习笔记 ---新手学习记录(7) 问题总结(java)
1.想要获取固定ul下所有li的个数 如下图: //获取ul下li的个数 List<WebElement> elements = driver.findElement(By.id(&qu ...
- selenium 学习笔记 ---新手学习记录(6) 问题总结(java)
1.查看网页的cookie信息 //查看cookie 登录后的cookie Set<Cookie> setcoke= driver.manage().getCookies(); for(C ...
- selenium 学习笔记 ---新手学习记录(5) 问题总结(java)
1.今天遇到个奇葩问题,iframe有两个id相同的(如下图) 使用driver.switchTo().frame(“frmLinkPage1”);这个无法使用了. 后来改用driver.switch ...
- selenium 学习笔记 ---新手学习记录(4) 问题总结(java)-autoit3脚本使用
1.安装autoit3 下载地址:点我下载 (提取码:9633) 提取码 下载完成后,一直下一步即可 2.上传头像使用脚本 代码如下: ControlFocus("打开",&quo ...
- selenium 学习笔记 ---新手学习记录(3) 问题总结(java)
1.验证码简单处理 /** * 验证码等待输入函数 * */ private void ZcYzm(WebDriver driver){ boolean flag=false; while(flag= ...
- selenium 学习笔记 ---新手学习记录(2) 问题总结
今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.se ...
随机推荐
- visual studio 2015通过附加进程调试wcf服务
网站: 打开wcf服务所在的项目 然后调用iis上部署的HLFC(crm)项目的接口就可以进行调试 注意 WCF服务项目要以管理员身份打开,调用wcf服务的项目要在iis中部署并点击调用后才能在附加到 ...
- How to block a specific IP Address using UFW
How to block a specific IP Address using UFW The key to blocking a specific IP address with UFW is t ...
- Intellij IDEA通过SVN导入基于Springboot的maven项目以及对已有项目做更新
一.导入外部maven项目 点击“+”,输入SVN地址并下载项目 弹出窗口,选择new window(自己觉得哪个好就选哪个) 等待执行完毕,执行完后会出现以下情况,就需要配置一下你的maven库了 ...
- 【转】使用expect实现shell自动交互
原文地址:http://www.nginx.cn/1934.html shell脚本需要交互的地方可以使用here文档是实现,但是有些命令却需要用户手动去就交互如passwd.scp 对自动部署免去用 ...
- php下载远程大文件(获取远程文件大小)
function download_file($url) { // $url = http://192.168.8.95/vm/download_file?downurl=http://192.168 ...
- vue学习(一)、Vue.js简介
Vue.js 五天 汤小洋一. Vue.js简介1. Vue.js是什么Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0 是一个构建用户界面的框架 ...
- String str = "1,2,3,4,5,6" 如何将这个字符串转换成int数组
String str = "1,2,3,4,5,6"; string[] strS = str.Split(','); int[] num = new int[strS.Lengt ...
- 随手记C#资料
1.where T: new()where后的称为泛型约束,这里约束泛型参数T必须具有无参的构造函数 2.判断路径是本地路径还是网址 private static bool IsLocalPath(s ...
- Python学习---抽屉框架分析[小评论分析]0315
注: 此处的小评论涉及数据库操作 初级小评论代码 settings.py INSTALLED_APPS = [ ... 'app01', # 注册app ] STATICFILES_DIRS = (o ...
- 沉淀再出发:java中的HashMap、ConcurrentHashMap和Hashtable的认识
沉淀再出发:java中的HashMap.ConcurrentHashMap和Hashtable的认识 一.前言 很多知识在学习或者使用了之后总是会忘记的,但是如果把这些只是背后的原理理解了,并且记忆下 ...