
C++本质
文章平均质量分 59
宇龍_
有些白嫖党连个赞都不点甚至直接抄走了说原创,新发布的都写到专栏里吧,哎。
私聊给群号,可进Q群咨询问题。
展开
-
C++中“重写“类的静态函数
C++中"重写"类的静态函数原创 2022-09-07 03:15:00 · 1018 阅读 · 0 评论 -
C/C++中的静态变量注意事项(很多人都会踩坑,甚至现在还不明白)
静态变量注意事项;踩坑原创 2022-07-26 22:54:42 · 1068 阅读 · 0 评论 -
子类隐藏父类的同名函数
在C++中,子类是不能重载父类函数的,因为重载只发生在同一个类中。所以在不考虑虚函数重写的情况下,子类中所有的同名函数(仅仅是与父类的函数名称相同),都会导致父类的同名函数被隐藏。见代码:#include <stdio.h>#include <stdlib.h>class CFather{public: void Test() { Print(); } void Print() { printf("CFather\n"); }};cl原创 2022-04-16 11:13:19 · 1036 阅读 · 0 评论 -
在构造函数中调用构造函数(C++中的误用)
C++中,在构造函数中调用构造函数是一种误用,demo如下:#include <stdio.h>class Test{public: int a; Test() { printf("construct Test()...\n"); Test(88); } Test(int a) { printf("construct Test(int a)...\n"); a = 8原创 2021-09-08 16:14:35 · 706 阅读 · 3 评论 -
c++对象创建带括号与无括号的区别
class Test{public: Test() {} Test(int a) {}}1、栈上创建对象 1.1 无括号 Test a; // 调用默认构造函数,栈上分配内存创建对象 1.2 有括号 Test a(); // 无任何意义,声明一个返回值为Test对象的无参函数 1.3 有括号+参数 Test a(2); // 调用构...转载 2018-11-07 21:28:02 · 959 阅读 · 2 评论 -
类普通成员函数的本质以及类普通成员函数中的静态变量
类普通成员函数的本质以及类普通成员函数中的静态变量Test类的代码如下:class Test{public: void test() { static int a = 4; ++a; printf("%d\n",a); }};类的普通成员函数本质上就是隐藏了一个this指针,如Test类中的test方法,其原型本质上就是void test(Test* this);至于传递this指针,不过是由编译器完成罢原创 2021-09-08 14:48:03 · 279 阅读 · 0 评论 -
字符串常量的生命周期
结论:C++中同一字符串常量只有一份,且保存在常量存储区,其生命周期从程序运行开始到程序结束。注意:1、const char *p1 = "test1"; //是字符串常量char p2[] = "test1"; //不是字符常量,而是临时变量。2、const char * p1 = "test1";const char * p2 = "test2"; //p1...原创 2020-03-12 19:39:34 · 1547 阅读 · 0 评论 -
C++多重继承子类和父类指针转换过程中的一个易错点
这两天有个C++新手问了我一个问题,他的工程当中有一段代码执行不正确,不知道是什么原因。我调了一下,代码如果精简下来,大概是下面这个样子:class IBaseA{public: virtual void fnA() = 0; int m_nTestA;};class IBaseB{public: virtual void fnB() = 0; ......原创 2020-02-26 15:49:33 · 2131 阅读 · 3 评论 -
构造函数中调用虚函数
在基类的构造函数中调用虚函数,语法是没有问题的,但执行情况可能不太一样。下面举例说明:class Base{public: Base() { Test(); } virtual void Test() { printf("Base Test\n"); }};class Car : public Ba...原创 2020-02-26 13:57:32 · 1645 阅读 · 0 评论 -
字节对齐的原因及计算方法
看了网上很多的相关文章,反而容易搞迷糊,在此详细总结一下,不明白的朋友可以在下方留言。一、为什么需要字节对齐?因为各个硬件平台对存储空间的处理上有很大的不同,一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台...原创 2020-02-24 10:31:46 · 1374 阅读 · 1 评论