C++知识
文章平均质量分 60
包含已学习的C++知识。
寂翎祭
你被击倒多少次都不重要,重要的是你有多少次爬了起来。
展开
-
C++:const成员和取地址操作符
将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数。隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可。4.非const成员函数内部可以自由地调用const成员函数。3.const成员函数内部不可以调用非const成员函数。这两个默认成员函数一般不用重新定义 ,编译器默认会生成。1.const对象不能调用非const成员函数。2.非const对象可以调用const成员函数。原创 2024-04-26 19:33:09 · 615 阅读 · 24 评论 -
C++:日期类的实现
【代码】C++:日期类的实现。原创 2024-04-25 18:54:41 · 226 阅读 · 9 评论 -
C++:拷贝构造函数和赋值运算符重载
6. 虽然编译器会生成默认的拷贝构造函数,但仅仅会完成浅拷贝,如果拷贝的函数涉及空间申请(如stack),则会出现错误(两个函数会申请到同一块空间,销毁时会出现同一块空间释放2次,导致程序崩溃)。: 编译器自动生成的赋值运算符重载是浅拷贝,对于无空间申请的函数可以(如Date),对于有空间申请的函数就不可以(如Stack),必须自己写。上图中,我故意将减法重载成加法,Sum执行的+是我重载的减法,但b执行的还是加法,说明内置类型的运算符不受重载运算符的影响。原创 2024-04-25 18:40:56 · 2246 阅读 · 1 评论 -
C++:构造函数和析构函数
构造函数是一个特殊的成员函数,名字与类相同,创建类类型对象时由编译器自动调用,保证每个数据成员都由一个合适的初始值。在对象的生命周期内只调用一次。不使用构造函数使用构造函数上面两幅图在main函数中,图1未使用构造函数,每次定义时都要调用Init函数初始化。图2 使用了构造函数,直接定义就可以,编译器会自动调用构造函数初始化,方便了用户,也防止了用户忘记调用Init函数的情况。原创 2024-04-23 18:21:56 · 547 阅读 · 11 评论 -
C++:类的对象模型和this指针
类的大小是该类中所有“成员变量”的和(不计算成员函数),还有注意内存对齐。上图中,A1中只有成员函数,类的大小不计算成员函数,所有大小相当于空类,为1。A2也只计算了_a的字节大小,为4。原创 2024-04-20 17:00:00 · 349 阅读 · 6 评论 -
C++:类的作用域和类的实例化
类定义了一个新的作用域,类的成员都在类的作用域中。在类外定义类成员需要使用::作用域操作符指明成员属于哪个类域。原创 2024-04-20 12:00:00 · 242 阅读 · 5 评论 -
C++:类的访问限定符和类的封装
C++的访问限定符分为3个。公有):修饰的成员可以直接访问保护):修饰的成员在类外不能直接访问私有):修饰的成员在类外不能直接访问注:1.访问限定符的作用域是从该访问限定符出现的位置开始到下一个访问限定符为止,如果后面没有访问限定符,则一直到}为止。2.访问限定符的作用只在编译时有用,数据映射到内存上后就没有访问限定符的区别。原创 2024-04-19 16:04:53 · 143 阅读 · 3 评论 -
C++:类的定义
/类体:类的成员函数和成员变量////类的后面要加分号class为定义类的关键字,classname是定义的类的名称(可自行定义),{}中是类的主体,}后要加分号。类中的内容称为类的成员,类中的变量叫作成员变量或类的属性,类中的函数叫作成员函数或类的方法。类的声明放在.h文件中,成员函数放在.cpp文件中,但成员函数名前需要加类名。这是常用的做法。.h文件class Student//Student为类名public:public:int _age;.cpp文件。原创 2024-04-19 16:00:20 · 400 阅读 · 2 评论 -
C++入门(下)
auto定义的变量会在编译器编译时自动识别变量的类型,但auto定义的变量必须初始化。//c++查看变量类型return 0;auto定义指针时可以加上*,也可以不加*,但加*时必须定义指针。auto定义引用时必须加上&,否则就成了赋值初始化。//引用auto c = a;//初始化c=5;return 0;使用auto定义多个变量时必须定义相同类型的变量。注1.auto不能作为函数的参数。原创 2024-04-02 16:27:04 · 1557 阅读 · 11 评论 -
C++入门(上)
定义命名空间,需要使用到namespace关键字,后面加上命名空间的名字,再加一对{ },{ }中即为命名空间的成员。//ht 是命名空间的名字,可以自定义//1.命名空间的定义//命名空间中可以定义变量/函数/类型int a = 10;//2.命名空间可以嵌套int a = 5;int b = 2;int c = 3;//3.同名的命名空间可以合并,例如在test.h和test.cpp文件中都存在ht命名空间,编译器会//自动处理,合并成一个命名空间注。原创 2024-03-28 20:11:51 · 361 阅读 · 1 评论