`

C++ 难点笔记

    博客分类:
  • C++
阅读更多


A:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#include <iostream>//下列程序段有错吗?
using namespace std;
class A{ 
   public:   
    A(int i){cout<<"A"<<i<<endl;};
    void show(){cout<<"111"<<endl;}
};
class B {
public:
 A a;
 B(int i) :a(2){
  cout<<"B"<<endl;
  a.show();
 }
};
int main(){
 B   b(2); //换成语句B   b();呢?  函数?对象?
 return 0;
}


结论:B(int i) :a(2)    A a;一看到这个就闷到了 原来是在编

译时段就初始化了,而且效率高,到底效率高在哪里呢?


B:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;
#include <iostream>
class One {public : void fun(){std::cout<<"One"<<std::endl;}
    One* operator ->(){
  return (new One());
    }
};
class Two 
{public :
 One operator -> ()   //返回值类型是UDT类。但该类没有重载->操作符
 {  return *(new One());    }
 
 /*
 One* operator -> ()   //成功UDT类指针,访问成功
 {  return (new One());    }
 */
};
void main(){ Two test;
 test-> fun(); //编译通不过,因为对one对象执行->操作。one对象只能通过.来访问成员
};


结论:重载这东西还是不熟练~!

异常
注意不要在析构函数中抛出异常,避免一个异常没有得到处理时又抛出一个异常,因为一个异常发生后会查找用来处理异常的catch子句,进行栈展开前调用局部变量的析构函数进行析构。尽量在构造函数中抛出异常,用于保证创建失败后能抛出异常,在catch子句中释放在构造函数中的资源。

编译依赖;编译多态(静态)、运行时多态(动态)。
编译单元:一个文件。为什么一个程序要分多个文件?
编译依赖是一个类、函数、软件实体、文件或组件等之间的关联,如果一个实体在编译时依赖于其它的实体才能编译,其它实体改变,则需要重新编译该实体。那么称该实体对其它实体有编译依赖。例子?我们要尽量使得编译依赖最小化。特别是尽量不要使用不需要的头文件,减少代码大小。 

接口隔离原则(ISP, Interface Segregation Principle)

合成/聚合复用原则(CAPP 
分享到:
评论

相关推荐

    C++ 学习笔记 整理

    7. **内存管理**:理解指针是学习C++的难点之一。了解如何分配和释放内存,避免内存泄漏和悬挂指针,是编写安全、高效C++代码的必备技能。 8. **预处理器宏和编译指令**:虽然预处理器在现代C++中使用较少,但了解...

    完整的C++课件以及笔记整理

    笔记是对学习过程的记录,可能包括关键概念的解释、难点解析、代码注释等。笔记的价值在于: 1. 知识梳理:将课件内容归纳整理,形成清晰的知识框架。 2. 问题解决:记录学习过程中遇到的问题及其解决方案,便于回顾...

    C++编码笔记(第一版)

    这份笔记特别关注了书中那些较为复杂和难以理解的部分,旨在帮助读者克服C++学习中的难点。作者明确指出,由于个人对C++的理解有限,笔记中可能存在不足或错误,欢迎读者们提出指正,共同探讨和进步。 在C++编程中...

    达内培训机构—C++笔记

    描述中提到的“包含C++的所有重要知识点,以及重点、难点”说明这份资料将全面覆盖C++的基础与高级特性,有助于学习者在学习过程中对重点和难点有更深入的理解。 标签“C++学习笔记”直接表明了这份文档的性质,即...

    (强烈推荐大家看一看)高质量C++编程指南(有笔记)_a

    9. **笔记中的重点**:阅读提供的笔记将有助于强调和澄清书中的一些难点,可能包括易错点、实用技巧、优化建议等。 通过系统学习这本书和笔记,初学者不仅可以掌握C++的基础,还能了解到编程实践中的一些高级主题,...

    C++笔记和代码

    在学习过程中,你可能会遇到一些概念上的困惑,如内存管理(堆与栈的区别)、指针与引用的使用、动态内存分配等,这些都是C++初学者常见的难点。而“C++笔记和代码”这个资源可能会对此进行简单的解释,帮助你逐步...

    达内科技+c+++课件+及+源码+笔记【完美版】【初学者福音】

    "笔记"通常记录了学习过程中的关键点、难点解析以及个人的理解,对于初学者而言,笔记是巩固知识和回顾学习进度的重要工具。"c++源码 笔记.rar"可能包含对C++语法、编程技巧的总结,以及在学习源码过程中遇到的问题...

    达内科技 c++ 课件 及 源码 笔记【完美版】【初学者福音】

    在本资源包中,"达内科技 c++ 课件 及 源码 笔记【完美版】【初学者福音】"包含了学习C++编程语言的重要材料,适合那些正在开始编程旅程的初学者。这份资源集合了课件、源码和笔记,旨在帮助初学者系统地理解和掌握...

    java—C++学习经典笔记

    C++的内存管理和对象生命周期管理是其难点,但也是掌握C++的关键。 这两门语言的对比学习尤为重要。Java的自动内存管理使得程序员可以更专注于业务逻辑,而C++则更强调效率和底层控制,适合开发对性能要求极高的...

    达内科技 c++ 培训教程 源码+笔记

    源码部分让学习者能够动手实践,理解每个概念的实际运用,而笔记则可以帮助整理学习过程中的重点和难点,巩固理论知识。对于初学者来说,这是一份宝贵的资源,不仅可以提升编程技能,还能培养良好的编程习惯和思维...

    c++课件+课堂笔记+源代码+习题和答案

    本篇文章将围绕提供的C++学习资源进行详细介绍,包括课件、课堂笔记、源代码以及习题和答案四个部分,旨在为读者构建一个全面且深入学习C++的框架。 首先,课件部分作为学习C++的理论基础,是理解语言特性和语法...

    达内科技c++课件及源码笔记【完美版】【初学者福音】

    2. **笔记解析**:对课件内容的详细解读,包括关键概念的解释、难点的剖析以及编程技巧的分享。 3. **习题解答**:可能包含课后练习题及其解答,帮助检验学习效果。 4. **项目实践**:可能包含一些小型项目的源码...

    c++经典资料大全(习题集和解答还有笔记)

    笔记部分可能是个人或他人在学习过程中总结的重点和难点,是宝贵的实践经验分享。 总之,这份"C++经典资料大全"是一个全面的学习资源,它涵盖了C++的各个方面,无论是初学者还是有一定经验的开发者,都能从中受益。...

    C语言难点整理笔记(全)

    总的来说,C语言难点整理笔记提供了全面的学习资源,涵盖了从基础到高级的各种概念,对想要深入学习C语言的开发者来说是一份宝贵的资料。通过掌握这些知识点,开发者不仅可以写出更安全、更高效的代码,还能提升对...

    C++重难点总结系列.rar

    该系列是本人学习C/C++以来,阅读相关书籍以及编程实践中记载的笔记中提炼的知识点,现整理成博文与大家分享。本系列不是小白系列,尽量避免冗杂的解释和叙述,简明扼要地总结干货,适合进阶的童鞋。限水平有限,有...

    Win32程序设计学习笔记

    ### Win32程序设计学习笔记知识点详析 #### 背景知识 - **保护模式下的内存管理**:深入理解Windows环境下32位程序设计,首先需要掌握的是保护模式下的内存管理和寻址机制。 #### 段寄存器与描述符表 - **实地址...

    达内 C/C++课件 适合初学者

    2. **指针与内存管理**:C/C++中的指针是其强大之处,也是初学者的难点。这部分会介绍指针的概念,如何使用指针操作内存,以及动态内存分配与释放。 3. **结构体与联合**:C/C++中的复合数据类型,如结构体和联合,...

    嵌入式开发学习笔记

    最后,作者回顾了自己嵌入式开发的入门过程,并在后话中表示,虽然嵌入式开发有很多难点和挑战,但通过不断学习和实践,这些问题都是可以克服的。作者希望能够通过分享自己的学习笔记,帮助其他初学者少走弯路。 综...

Global site tag (gtag.js) - Google Analytics