zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《C++必知必会》读书笔记2

C++ 读书笔记 必会 必知
2023-09-14 08:59:44 时间

在类X的非常量成员函数中,this指针的类型为 X *const .也就是说他是指向非常量X的常量指针。

但是在类X的常量成员函数中,this的类型为const X* const . 这就是常量成员函数和非常量成员函数的区别。

类的非静态数据成员可以被声明为mutable,这将容许她们的值可以被这个类的常量成员函数(也包括非常量成员函数)修改。

 

如果一个类声明了一个或者多个虚函数,那么编译器会为这个类的每一个对象插入一个指向虚函数表的指针。

如果使用了虚拟继承,对象将会通过嵌入的指针,偏移量或者其他非嵌入的信息来维持对其虚基类自对象位置的跟踪。因此,即使类没有声明虚函数,其中还是有坑被插入了一个虚函数表的指针。

 

对于一个类X来说,复制构造函数应该被声明为 X (const X   而复制赋值操作符应该被声明为X operator=(const X ) 。

 

将一个函数的地址初始化或赋值给一个指向函数的指针的时候,无需显式的取得函数地址,编译器知道隐式的获取函数的地址,因此在这种情况下, 操作符是可选的。比如:

void (*fp)(int );

extern void h(int);

fp=h;  //OK

fp= //OK

类似的,可以采用如下的方式调用函数:

fp(12); 或者 (*fp)(12);

 

注意,和void * 指针可以指向任何类型的数据不同,不存在可以指向任何类型函数的通用指针。

还要注意,非静态成员函数的地址不是一个指针,因此不可以将一个函数指针指向一个非静态成员函数。

 

函数指针的一个传统用途是实现回调。

一个函数指针指向内联函数是合法的。但是如果通过函数指针调用内联函数将不会导致内联函数的调用,因为编译器通常无法在编译阶段确定将会调用什么函数。


        作者的读书笔记,串成一本书,基本都是心理学的知识。         自我提升的障碍:人的本能是一种短视思维,消费短时的快乐而不是等待长时的快乐,表现为急功近利,急于求成,在学习新东西、认识陌生人的时候最容易体现出来,接触新的领域,本来原来的习惯已经养成,要接纳新的东西,开始就会比较困难,就像是已经盛了水的杯子,要装下新的饮料,自然装的少,而已还可能排斥,所以空杯心态经常被念及。
            王鼎钧作文四书之一,讲的是论说文的写作。讲理,就是做判断、论是非、发表意见。             发表意见,比如“地球是圆的”,这是个是非,讲完是非,就得提证据,像法律,没有证据,别人怎么信你?所以论说文的开头,发表你的意见,接下去就是列证据:“一、二、三”。
        这是老舍关于戏剧、小说、诗歌等写作的看法观点。写作的文体包括话剧、长篇小说、短篇小说,每种文体的篇幅、格式不一样,写作时要注意的重点都不一样。
1、站在不同的角度,以不同的视角来想问题可能是什么。找准问题的本质 2、确定问题该由谁解决,以不同的视角如何解决问题 3、解决问题的过程中,忠实自己。