随笔分类 -  C++重点 / C++基础语法

1 2 3 4 5 ··· 7 下一页
摘要:# 134.为什么C++没有垃圾回收机制?这点跟Java不太一样 1. 性能:垃圾回收机制需要额外的内存和计算资源,这会引入一定的开销。C++的设计目标之一是提供高效的性能,垃圾回收机制可能会对程序的性能产生负面影响。因此,C++没有内置的垃圾回收机制,以便程序员自行管理内存等资源。 2. 控制:C 阅读全文
posted @ 2023-08-02 21:41 CodeMagicianT 阅读(163) 评论(0) 推荐(0) 编辑
摘要:# 133.为什么不能把所有的函数写成内联函数? 内联函数以代码复杂为代价,它以省去函数调用的开销来提高执行效率。所以一方面如果内联函数体内代码执行时间相比函数调用开销较大,则没有太大的意义;另一方面每一处内联函数的调用都要复制代码,消耗更多的内存空间,因此以下情况不宜使用内联函数: - 函数体内的 阅读全文
posted @ 2023-08-02 21:40 CodeMagicianT 阅读(58) 评论(0) 推荐(0) 编辑
摘要:# 132.delete和delete[]区别? - delete只会调用一次析构函数。 - delete[]会调用数组中每个元素的析构函数。 阅读全文
posted @ 2023-08-02 21:40 CodeMagicianT 阅读(21) 评论(0) 推荐(0) 编辑
摘要:# 131.介绍一下几种典型的锁 **读写锁** - 多个读者可以同时进行读 - 写者必须互斥(只允许一个写者写,也不能读者写者同时进行) - 写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者) **互斥锁** 一次只能一个线程拥有互斥锁,其他线程只有等待 互斥锁是在抢锁失败的情况 阅读全文
posted @ 2023-08-02 21:40 CodeMagicianT 阅读(54) 评论(0) 推荐(0) 编辑
摘要:# 130.hello.c 程序的编译过程 以下是一个 hello.c 程序: ```C++ #include int main() { printf("hello, world\n"); return 0; } ``` 在 Unix 系统上,由编译器把源文件转换为目标文件。 ``` gcc -o 阅读全文
posted @ 2023-08-02 21:39 CodeMagicianT 阅读(74) 评论(0) 推荐(0) 编辑
摘要:# 129.动态编译与静态编译 ## 1.静态编译 静态编译是将程序代码和库函数一起编译成一个可执行文件的过程。在静态编译过程中,程序代码和库函数的代码被组合在一起,形成一个独立的可执行文件,该文件可以在任何系统上运行,因为它包含了所有所需的代码和库函数。 ### 1.1优点: 1.程序在运行时不需 阅读全文
posted @ 2023-08-02 21:39 CodeMagicianT 阅读(321) 评论(0) 推荐(0) 编辑
摘要:# 128.用C语言实现C++的继承 ```C++ #include using namespace std; //C++中的继承与多态 struct A { virtual void fun() //C++中的多态:通过虚函数实现 { cout fun(); //调用父类的同名函数 p1 = &b 阅读全文
posted @ 2023-08-02 21:38 CodeMagicianT 阅读(59) 评论(0) 推荐(0) 编辑
摘要:# 127.友元函数和友元类的基本情况 友元提供了不同类的成员函数之间、类的成员函数和一般函数之间进行数据共享的机制。通过友元,一个不同函数或者另一个类中的成员函数可以访问类中的私有成员和保护成员。友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。 阅读全文
posted @ 2023-08-02 21:38 CodeMagicianT 阅读(20) 评论(0) 推荐(0) 编辑
摘要:# 126.友元函数在类内部声明还是内外? 友元函数不一定要在类内声明,普通的友元函数可以在类外声明,也可以在类内声明。 只有友元工厂才必须用到类内声明友元函数。 友元函数可以在类的内部声明,也可以在类的外部声明。 1.如果友元函数是在类的内部声明的,那么它可以直接访问类的私有成员和保护成员,即使这 阅读全文
posted @ 2023-08-02 21:37 CodeMagicianT 阅读(541) 评论(0) 推荐(0) 编辑
摘要:# 125.C++从代码到可执行程序经历了什么? ## 1.预编译 主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下: 1. 删除所有的#define,展开所有的宏定义。 2. 处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。 阅读全文
posted @ 2023-08-02 21:37 CodeMagicianT 阅读(30) 评论(0) 推荐(0) 编辑
摘要:# 124.什么是一致性哈希? **一致性哈希** 一致性哈希是一种哈希算法,就是**在移除或者增加一个结点时,能够尽可能小的改变已存在key的映射关系** 尽可能少的改变已有的映射关系,一般是沿着顺时针进行操作,回答之前可以先想想,真实情况如何处理 一致性哈希将整个哈希值空间组**织成一个虚拟的圆 阅读全文
posted @ 2023-08-02 21:36 CodeMagicianT 阅读(92) 评论(0) 推荐(0) 编辑
摘要:# 123.你知道回调函数吗?它的作用? 1.当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数; 2.回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。为此,你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数 阅读全文
posted @ 2023-08-02 21:32 CodeMagicianT 阅读(191) 评论(0) 推荐(0) 编辑
摘要:# 122.成员函数里memset(this,0,sizeof(*this))会发生什么 有时候类里面定义了很多int,char,struct等c语言里的那些类型的变量, 可以在构造函数中将它们初始化为0,但是一句句的写太麻烦,所以直接就memset(this, 0, sizeof (*this)) 阅读全文
posted @ 2023-08-02 21:31 CodeMagicianT 阅读(98) 评论(0) 推荐(0) 编辑
摘要:# 121.static_cast比C语言中的转换强在哪里? 1. 更加类型安全:`static_cast`在执行类型转换之前会进行类型检查,如果转换不可行,编译时会产生错误或警告。这有助于及早发现潜在的错误并进行修复,而不是在运行时出现未定义的行为。 2. 适用于指针和引用:`static_cas 阅读全文
posted @ 2023-08-02 21:30 CodeMagicianT 阅读(148) 评论(0) 推荐(0) 编辑
摘要:# 120.strcpy函数和strncpy函数的区别?哪个函数更安全? 1.函数原型 ```C++ char* strcpy(char* strDest, const char* strSrc) char *strncpy(char *dest, const char *src, size_t n 阅读全文
posted @ 2023-08-02 21:27 CodeMagicianT 阅读(784) 评论(0) 推荐(0) 编辑
摘要:# 119.模板会写吗?写一个比较大小的模板函数 本程序适合char、int、float类型数据进行比较,差距小于0.01视为相等 ```C++ #include #include using namespace std; //本程序适合char、int、float类型数据进行比较,差距小于0.01 阅读全文
posted @ 2023-07-12 21:43 CodeMagicianT 阅读(99) 评论(0) 推荐(0) 编辑
摘要:# 118.main函数的返回值有什么值得考究之处吗? main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出。返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。 ## 1.void main() 有一些书上的,都使用了void main( ) ,其实这是错误的。C 阅读全文
posted @ 2023-07-12 21:43 CodeMagicianT 阅读(198) 评论(0) 推荐(0) 编辑
摘要:# 117.你知道Debug和Release的区别是什么吗? 1.调试版本(Debug),包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个 阅读全文
posted @ 2023-07-12 21:42 CodeMagicianT 阅读(210) 评论(0) 推荐(0) 编辑
摘要:# 116.如何禁止程序自动生成拷贝构造函数? ##### 1.为了阻止编译器默认生成拷贝构造函数和拷贝赋值函数,我们需要手动去重写这两个函数,某些情况下,为了避免调用拷贝构造函数和拷贝赋值函数,我们需要将他们设置成private,防止被调用。 ###### 1.1手动重写这两个函数 在C++中 阅读全文
posted @ 2023-07-12 21:42 CodeMagicianT 阅读(432) 评论(0) 推荐(0) 编辑
摘要:# 115.如何阻止一个类被实例化?有哪些方法? 1.将类定义为抽象基类或者将构造函数声明为private; 将类定义为抽象类:抽象类是不能被实例化的,只能被继承。通过将类定义为抽象类,可以防止该类被实例化。 ```C++ class AbstractClass { public: virtual 阅读全文
posted @ 2023-07-12 21:41 CodeMagicianT 阅读(391) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页
点击右上角即可分享
微信分享提示