随笔分类 - C++基础知识
C++语言的基础知识和常用的STL
摘要:pair是一个模板数据类型,其中包含两个数据值,两个数据值可以不同 如 pair<int,string>a(2,"fgh");则a是一个pair类型,它包括两个数据,第一个数据是int型2,第二个数据是string型"fgh"。 由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的
阅读全文
摘要:在解题时候,通常有遇到设置为无穷大的情况。这时候通常用0x7fffffff来设置,他是计算机32位整数最大数,相当于INT_MAX.但是在很多时候这样设置并不会是最佳的,还可能导致bug,这是由于我们有的时候希望无穷大+无穷大=无穷大,比如在prim算法或者Dijstra算法中对边的松弛操作,这个时
阅读全文
摘要:一:类型别名是一个名字,它是某种类型的定价。有两种方法定义类型别名: 1.使用typedef关键字,如: typedef int *Int_Ptr Int_Ptr p=nullptr; //Int_Ptr是一个int指针类型,这里定义了一个int型指针P 2.使...
阅读全文
摘要:常量表达式(const expression):是指值不会改变并且在编译过程中就得到计算结果的表达式。(运行中得到结果的不能成为常量表达式)。 const int i=3; //是一个常量表达式 const int j=i+1; //是一个常量表达式 int k=...
阅读全文
摘要:const对象一旦创建后,其值就不可以改变,所以const对象必须初始化。与非const的类型比较,主要区别在于const类型对象执行但是不改变其操作内容。 在默认状态下,const只在文件内有效。在默认状况下,const定义的对象仅限定在文件类起作用,当多个文件中出现了同名的const时其实...
阅读全文
摘要:void*是一种特殊的指针类型,可以用来存放任意对象的地址。一个void*指针存放着一个地址,这一点和其他指针类似。不同的是,我们对它到底储存的是什么对象的地址并不了解; 比如:double a=2.3; int b=5; void *p=&a; cout<<p<<e...
阅读全文
摘要:表现动多态的函数只处理特定类系列的对象,一个类层次的结构,而且基类必须是多态类,一个类系列配一个表现多态的函数。而模板表现的多态不是在运行中进行类型识别的,而是在编译时刻进行类型识别的,因而模板实现的多态为静多态。 对于抽象编程来说,或许使用动多态更好一点,他可以将类实现的源代码彻底隐蔽,无需...
阅读全文
摘要:抽象类就是在类中至少声明一个纯虚函数,所谓纯虚函数就是被标明不具体实现的函数。声明纯虚函数方法是在虚函数后面加上“=0”,如virtual void fn()=0;抽象类是作为基类为其他类而服务的,不可具体实例化。
阅读全文
摘要:在类的编程中,要能进行抽象编程,不随类的改动而改动,类机制必须解决这个问题。在C++中那就是虚函数机制。基类与派生类的同名操作只要标记上virtual(虚拟)就可以),则该操作就具有多态性。 在调用子类和基类同名虚函数标志函数时,使得该捆绑操作滞后运行,以实际对象类型来捆绑其对应成员函数的操作,此...
阅读全文
摘要:C++继承方式有公有继承,私有继承,保护继承。值得注意的是,基类私有成员在任用任何继承方式下都是隔离的,也就是视派生类为外人。在公有继承中,基类的每个成员在子类中保证相同的访问方式,在基类为public 成员,则在子类也是public成员,在基类为保护成员则在子类也是保护成员。对于保护继承,基类...
阅读全文
摘要:类机制中有默认的对象复制操作符=,自定义对象复制需要注意一个问题,如果有遇到指针指向的资源是需要释放的,这时需要毫不留情释放,否则内存空间的泄露就不可避免。复制操作与拷贝构造函数的参数是一致的,只是在功能上复制操作只管复制不管构造。赋值操作返回必须是引用返回,这是为了与复制操作符语义一致,因为复制...
阅读全文
摘要:1默认拷贝构造函数:默认拷贝构造函数是构造函数的重载,它是依据对象来创建对象的,如Student a(b); 表示通过b对象来初始化a,那么这种对象创建活动为拷贝构造函数。如果对象实体是单纯的对象本体时,对象的拷贝构造与变量的拷贝并无两样,但是若对象本体不同于对象实体时,对象的拷贝就有了差别(如...
阅读全文
摘要:静态属性不是类中每个对象拥有的,而是共有的。由于静态成员逃离了对象而存在的性质,所以该实体应该在所有对象产生之前产生,更适合的时机是在程序启动的时候做初始化。初始化时候不可重复上static,但是要加上类名空间。该实体在程序中的唯一性,要求他不可以和类的定义放在头文件中,但是它确实是类的成员,所...
阅读全文
摘要:++增量互有前增量和后增量区别,重载操作符时,虽然函数名相同,但是应有相应的区别.对于一个整型变量前增量操作符的结果与返回值变量是一致的,而后增量操作符返回的是一个临时变量。于是在增量操作符重载时也需要有前增量与后增量的区分。 前增量操作对象与返回对象是同一个变量,在反应对象的前增量操作时,要...
阅读全文
摘要:内联函数声明必须在调用前,这是由于内联函数的代码在程序运行时是直接镶嵌在调用处执行的,这用节省啦函数来回跳动的时间。应该注意的是,内联函数函数体应该尽量小,一般没有循环语句,否则编译器无视内联,代码在5行内。适合于频繁被调用的小程序。#includeusing namespace std;int s...
阅读全文

浙公网安备 33010602011771号