![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 60
qq_41148509
这个作者很懒,什么都没留下…
展开
-
结构体内存对齐和大小端
结构体怎么对齐?1.第一个成员与结构体变量偏移量为0的地址处开始数2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处注意:对齐数,VS中是8,linux中是43.结构体的总大小为最大对齐数(每个成员变量除了第一个成员都有一个对齐数 )的整数倍4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的 整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的...原创 2018-08-30 21:21:07 · 916 阅读 · 0 评论 -
C语言和C++中的static总结
C语言中的static1.static修饰全局变量,改变了变量的变量的链接属性,使得这个全局变量只能在本文件中访问2.static修饰局部变量,使其生命周期变长,直到程序运行结束才释放,被static修饰的局部变量放在静态区3.static修饰函数,改变了函数的链接属性,只能在本文件中调用,不能被其他文件访问C++中static声明为static的类成员(成员数据或成员函数),...原创 2018-09-07 13:02:38 · 162 阅读 · 0 评论 -
const和voliate 总结
在C语言中,const修饰某个类型变量,是变量,下面这段代码不能运行const int a=10;int arr[a];但是在C++中,const修饰某个类型变量, 变为常量,上面这段代码就可以运行 类似于宏的属性替换,在编译期间进行替换const使用场景:1.const修饰形参,一般和引用同时使用2.const修饰返回值3.const修饰类数据成员,必须在构...原创 2018-09-07 18:19:34 · 736 阅读 · 0 评论 -
C++内存管理方式
C++中通过new和delete运算符进行动态内存管理 如图:注意:new/delete、new[]和delete[]一定匹配使用 C库malloc/free等来动态管理内存,为什么C++还要定义new/delete运算符来动态管理内存呢?因为:c语言是面向过程的语言,错误返回错误码,C++是面向对象的语言,错误要抛异常 malloc/free 只负责分配和释...原创 2018-10-09 16:37:14 · 118 阅读 · 0 评论 -
设计类、单例模式
1.请设计一个类,该类只能在堆上创建对象 方法:将类的构造函数和拷贝构造函数声明为私有,防止别人调用拷贝在栈上生成对象 提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建class heaponly{public: static heaponly*getheap() { return new heaponly; }privat...原创 2018-11-07 17:39:50 · 187 阅读 · 0 评论 -
C++模板简单介绍
泛型编程:编写与类型无关的通用代码,是代码复用的一种手段模板是泛型编程的基础模板又分为函数模板和类模板函数模板: 该函数与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本 template是用来定义模板参数的关键字,也可以使用class(不能使用struct)template<class T>T add(T&left, T&am...原创 2018-11-07 21:21:50 · 182 阅读 · 0 评论 -
深浅拷贝解析
浅拷贝:只是对指针的拷贝,拷贝后两个指针指向同一块内存空间,两个对象共享一份资源,当一个对象销毁时就会将资源释放 掉,而另一个对象不知道资源已经释放,以为还有效,所以继续对资源进行访问时就会发生访问违规。#include<iostream>#include<assert.h>#include<unistd.h>#incl...原创 2018-11-15 21:02:57 · 155 阅读 · 0 评论 -
C++中string的基本使用
void test_string1() //对象的创建{ string s1; string s2("haha"); string s3(s2); s1 = s2; cout << s1 << endl; cout << s2 << endl; cout << s3 << endl;}void原创 2018-11-23 17:54:40 · 312 阅读 · 0 评论 -
内联函数和友元函数总结
内联函数 概念:以inline修饰的函数叫做内联函数,编译是C++编译器会在调用内敛函数的地方展开,没有函数压栈 的开销,内联函数提升程序运行的效率 特性:1.Inline是一种用空间换取时间的做法,省去调用函数额外开销,所以代码很长或者有循环/递归的函数不适宜使用内联 2.inline对编译器而言只是一个建议,编...原创 2018-09-10 18:29:24 · 566 阅读 · 0 评论 -
运算符重载
今天看到一句话觉得很好,送给即将成为程序员的我们: 程序员最关键的是解决问题,不管你之前学没学过, 只要在你职责范围内有需求,你都得想方设法把问题处理C++中预定义的运算符操作对象只能是基本数据类型,但实际上,用户自定义的类型也需要这样的运算操作 这时候就必须在C++中重新定义这些运算符,给予已有运算符新的功能,使它能够用于特定类型执行特定 的操作。运算...原创 2018-09-06 18:35:55 · 108 阅读 · 0 评论 -
缺省参数和函数重载总结
缺省参数概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值,在调用该函数时,如果没有指定实参 则采用该默认值,否则使用指定的实参 例子:缺省参数又分为全缺省参数和半缺省参数注意:1.带缺省值的参数必须放在参数列表的最后面 2.缺省参数不能同时在函数声明和定义中出现...原创 2018-08-28 13:14:24 · 503 阅读 · 0 评论 -
引用和命名空间总结
首先回忆一下在c语言中:函数传参有两种方式:1.传值 2.传地址传值:在函数调用过程中会生成一份临时变量,最终把实参的值传给新分配的临时变量 优点:避免了函数调用的副作用。 缺点:无法改变实参的值传地址:通过改变形参来改变实参的值,只能通过指针传递引用的概念:引用不是新定义的一个变量,而是给已经存在的变量取一个别名,编译器不会为引用变量开辟内存...原创 2018-08-28 19:07:39 · 1978 阅读 · 0 评论 -
this指针详解
什么是this指针?当我们进入一个房子之后,可以看见房子里的电视、灯、花草等,但是看不到房子的全貌。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向这个实例具体说明:在建立对象时,系统会为每一个对象分配独立的存储空间,也就是给每个对象中的数据成员都分配有自己独立的存储空间。如果对同一个类定义多个对象,则有多个同样大小的空...原创 2018-08-31 18:45:41 · 1012 阅读 · 0 评论 -
类和对象总结
类和对象在C中 “数据”和“处理数据的操作(函数)”是分开的,语言本身并没有支持“数据和函数”之间的关联性在C语言结构体中不能定义函数,但是在C++中可以在结构体中定义函数例子:struct student{ char _name[20]; char _sex[5]; int _age; void students(const char* name, char* sex...原创 2018-08-29 21:25:55 · 349 阅读 · 0 评论 -
构造函数
类的6个默认成员函数:构造函数、拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载 const修饰的取地址操作符重载接下来的几篇博客会一一为大家介绍这几个成员函数构造函数: 概念:构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时,由编译器自动调用 在...原创 2018-09-02 11:47:01 · 127 阅读 · 0 评论 -
拷贝构造函数和析构函数
拷贝构造函数概念:只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰) 这样的构造函数称为拷贝构造函数,拷贝构造函数是特殊的构造函数,创建对象时使用 已经存在的同类对象来进行初始化,由编译器自动调用 例子:class date{public: date(int year, int month, int day) //构造 : _yea...原创 2018-09-03 13:32:46 · 713 阅读 · 0 评论 -
c++中类的6个默认的成员函数
根据下面的代码你可以更好的理解这6个函数,要看概念可以参考我的前面几篇博客class Test{public: Test(int a = 0) { cout << "构造函数" << this << endl; date = a; } Test(const Test&t) { cout << "拷贝构造"原创 2018-09-08 14:29:27 · 143 阅读 · 0 评论 -
C++之日期类
学完前面的东西,现在来具体应用一下写一个日期类,具体功能如下:bool LeapYear(int year)//判断是不是闰年int MonthDay(int year, int month)//每月天数的判断Date operator++()//前置++Date operator++(int)//后置++Date operator--()//前置--Date operator...原创 2018-09-11 22:21:01 · 106 阅读 · 0 评论