2021年7月19日

摘要: 如果是指变量的声明和定义 从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配 任何内存。而定义就是分配了内存。 如果是指函数的声明和定义 声明:一般在头文件里,对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。 定义:一般在源文件 阅读全文
posted @ 2021-07-19 01:08 超人不会灰啊 阅读(179) 评论(0) 推荐(0) 编辑
 
摘要: 1、 我们只能重载已有的运算符,而无权发明新的运算符;对于一个重载的运算符,其优先级和结合律与内置类型一致才可以;不能改变运算符操作数个数; 2、 两种重载方式:成员运算符和非成员运算符,成员运算符比非成员运算符少一个参数;下标运算符、箭头运算符必须是成员运算符; 3、 引入运算符重载,是为了实现类 阅读全文
posted @ 2021-07-19 01:06 超人不会灰啊 阅读(66) 评论(0) 推荐(0) 编辑
 
摘要: cout<<是一个函数,cout<<后可以跟不同的类型是因为cout<<已存在针对各种类型数据的重载,所以 会自动识别数据的类型。输出过程会首先将输出字符放入缓冲区,然后输出到屏幕。 cout是有缓冲输出 flush立即强迫缓冲输出。 printf是无缓冲输出。有输出时立即输出 阅读全文
posted @ 2021-07-19 00:59 超人不会灰啊 阅读(349) 评论(0) 推荐(0) 编辑
 
摘要: 1) 三种访问权限 ① public:用该关键字修饰的成员表示公有成员,该成员不仅可以在类内可以被访问,在类外也是可 以被访问的,是类对外提供的可访问接口; ② private:用该关键字修饰的成员表示私有成员,该成员仅在类内可以被访问,在类体外是隐藏状态; ③ protected:用该关键字修饰的 阅读全文
posted @ 2021-07-19 00:57 超人不会灰啊 阅读(258) 评论(0) 推荐(0) 编辑
 
摘要: 1) 模板定义很特殊。由template<…>处理的任何东西都意味着编译器在当时不为它分配存储空间,它一直处于等待状态直到被一个模板实例告知。在编译器和连接器的某一处,有一机制能去掉指定模板的多重定义。所以为了容易使用,几乎总是在头文件中放置全部的模板声明和定义。 2) 在分离式编译的环境下,编译器 阅读全文
posted @ 2021-07-19 00:22 超人不会灰啊 阅读(346) 评论(0) 推荐(0) 编辑
 
摘要: 函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序 中显式地指定。即函数模板允许隐式调用和显式调用而类模板只能显示调用。在使用时类模板必须加, 而函数模板不必 阅读全文
posted @ 2021-07-19 00:16 超人不会灰啊 阅读(170) 评论(0) 推荐(0) 编辑
 
摘要: 1.用户告诉操作系统执行HelloWorld程序(通过键盘输入等) 2.操作系统:找到helloworld程序的相关信息,检查其类型是否是可执行文件;并通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址。 3.操作系统:创建一个新进程,将HelloWorld可执行文件映射到 阅读全文
posted @ 2021-07-19 00:08 超人不会灰啊 阅读(465) 评论(0) 推荐(0) 编辑