随笔分类 - C++ Primer Plus笔记
摘要:阅读目录操作符重载static成员初始化类中的隐式成员函数重载中括号类中的静态成员函数重载operator+delete new的对象new布局后显式调用析构函数类的转换队列模拟堆栈和列表嵌套结构和类成员初始化列表伪私有方法随机数函数1.操作符重载1.static成员的初始化 static成员是单独存储的,并不是类对象的一部分,不能在类声明中初始化。(但static的int和const枚举可以在类声明中初始化。) 静态成员在类声明中声明,在包含类方法的文件中初始化,使用作用域解析符。#ifndef TESTCLASS_H_#define TESTCLASS_H_class TESTCLAS..
阅读全文
摘要:1.继承1.1私有继承 1 class Student : private std::string, private std::valarray 2 { 3 public : 4 using std::valarray::min; 5 ... 6 }; 7 8 ostream & operator::sum();12 return (const string&) *this;13 }私有继承提供了无名称的子对象成员。上面的代码提供的是string和valarray类型的对象。访问上面的无名子对象成员时,应用强制类型转换。12行私有继承时,...
阅读全文
摘要:1.操作符重载 a) 重载的至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载操作符。 b) 不能违反操作符原有来的句法规则。 c) 不能定义新的操作符。另外有一些操作符是不可以重载的,这里不列举。 2.友元函数 创建友元函数: 友元函数并没有违反OOP的数据隐藏原则,只有类声明可以决定哪
阅读全文
摘要:1.类的声明和定义 类的声明和定义。 类声明的格式如下: class className { private://private 是类对象的默认访问控制,因此,可以省略 data member delarations//类的私有数据成员名中使用m_开头是个不错的习惯 public: member f
阅读全文
摘要:1.有关头文件头文件中不要添加变量和函数定义。(多次引用会重复,内联函数除外)可包含在头文件中的内容有:函数/结构/类/模板的声明,使用#define或const()定义的符号常量。 #include只查找系统库,#include””先查找工作目录,没有再找系统库 C++防止多重声明的防护方案: 这样一来,即使包含了多次头文件,也只会忽略除了第一次之外的所有内容//testProtect.h#ifndef TESTPROTECT_H#define TESTPROTECT_H//头文件部分...//...//...#endif2.存储持续性、作用域、链接性...
阅读全文
摘要:1. 内联函数普通函数调用: 存储调用指令的地址-》将函数参数复制到堆栈-》跳到函数地址执行代码(返回值放到寄存器)-》跳回调用指令处 2. 当代码执行时间很短,且会被大量调用的时候,使用内联函数将节省调用的时间。 3. 定义方法: 省略原型,并将整个定义放在本应该放原型的地方,书写...
阅读全文
摘要:C++的返回值类型不能是数组函数原型中的变量名相当于点位符,因此不要求提供变量名。void cheers(int);C++中不指定参数列表时就使用活力号:void saybye(...);通常,仅当与接受可变参数的C函数(如printf())交互时才需要这样做。静态类型检查:在编译阶段进行的原型化。函数调用时将参量(实参)传递给参数(形参,函数定义中 用于接收参数而声明的变量)。cin>>输入时跳过前面的空格和换行符。当且仅当用于函数头或函数原型中时,int arr[] 和 int *arr 才相同,都表示指针。要传递数组类型 和 元素数量时,要分成两个参数来传递,而不能用方括号直
阅读全文
摘要:||、 &&操作符是一个顺序点>n数字出错时:n值保持不变;错误输入被留存队列中;设置一个错误标记;返回cin 或 false。简单文件输入/输出:cin>>某一类型时:cin不断读取,直到遇到不属于该类型的字符时为止,并将其丢回输入流。cin.getline(arr, 50),直到遇到换行符,最后会将换行符丢弃。包含头文件fstream。文件输入输出的ostream/fstream。#include #include ......ofstream outFile;outFile.open("C:\***.txt");//如果不存在,则会新
阅读全文
摘要:C++将赋值表达式的值定义为左侧成员的值赋值操作符是自右向左结合的cout.setf(ios:: boolalpha);//调用设置标记,命令cout输出true或false,而非1或0.任何表达式加上分号都会成为语句,但反过来不一定成立:int n;顺序点:程序执行过程中的一个点,在这里,在进行下一步之前将确保对所有的副作用进行了评估。完整表达式:不是另一个表达式的子表达式(没有任何表达式是它的父表达式)。比如下面的整个表达式是一个表达式,其中的两个子表达式都不是完整表达式:y = (4 + x++) + (6 + x++);//完整表达式结束后对所有副作用进行了评估,在子表达式(4+ x+
阅读全文
摘要:本章介绍的有复合类型有: 数组、 字符串、 结构、 共用体、 指针数组:声明数组时数组长度必须为常量(或const)。只有初始化时可以用“=”,其它时候均不可以给数组直接赋值,除了赋值的元素以外其它全默认为0:int myArr[10] = {10,8};初始化时数组长度不设时,编译器会根据内容计算元素个数:int myArray[] = {3,2,45}字符串:C风格的字符串后面都要有'\0',否则不是字符串;引号括起来的字符串隐藏带'\0':char dog[4] = {'x', 'j', 'p', '
阅读全文
摘要:&操作符可以取到变量在内存中的位置limits.h头文件包含了各种限制的符号的名称。#include 。如INT_MAX,SHRT_MAX,LONG_MAX。float.h头文件中定义了浮点型中各各限制符。如float/double的精度等。sizeof返回 类型名 或 变量 的长度(字节)。siz...
阅读全文
摘要:预处理器:在代码编译之前把内容添加到代码中并组成另一个复合文件。一些老式编译器要用预处理编译指令#include,而新编译器用#include;后面要加using namespace std;命名空间:如上的std,不使用编译指令using导入时,可以使用std::cout以便区别不同命名空间内的方法。int main函数可以省略return;
阅读全文
摘要:计算机语言要处理的两个问题: 数据和算法。C语言:结构化编程。解决了意大利面条式的难以读懂的编程问题。for while do```while if```else自顶向下的设计。将程序从上向下分解成可易于编写的模块。过程性编程。强调的是算法方面,即计算机应做的操作,然后使用语言完成这些操作。C++OOP。OOP则强调的是编程的数据方面。属于自下向上的编程:从低级组织(如类)到高级组织(如程序)的处理过程通用编程。强调的是独立于数据的算法方面。windows编译器中的几个概念compile:编译当前代码build:递增(只编译改变的)地编译工程中的代码build all:全重新编译link:将编
阅读全文
浙公网安备 33010602011771号