随笔分类 - C++
C++知识记录
摘要:1.C++ 标准库智能指针 c++11标准废除乐auto_ptr, 使用这些智能指针作为将指针封装为纯旧 C++ 对象 (POCO) 的首选项。 unique_ptr 只允许基础指针的一个所有者。 除非你确信需要 shared_ptr,否则请将该指针用作 POCO 的默认选项。 可以移到新所有者,但
阅读全文
摘要:http://wenku.baidu.com/view/d7ac113243323968011c925b.html 已知类String的原型为: 请编写String的上述4个函数。 1 /* 2 ccnu_hupo_cpp_class_tst6exercise2_by:lele_2013_10_30
阅读全文
摘要:http://blog.csdn.net/cyp331203/article/details/23954369 实际上,在运算符重载中,友元函数运算符重载函数与成员运算符重载函数的区别是:友元函数没有this指针,而成员函数有,因此,在两个操作数的重载中友元函数有两 个参数,而成员函数只有一个。当重
阅读全文
摘要:下面哪种情况下,B不能隐式转换为A? class B:public A{} class A:public B{} class B{operator A();} class A{A(const B&);}显式转换是由程序员自己主动完成,隐式转换是由编译器完成的,其二显示转换一般是由高向低,隐式转换是由
阅读全文
摘要:下列关于模板的说法正确的是 D 模板的实参在任何时候都可以省略 类模板与模板类所指的是同一概念 类模板的参数必须是虚拟类型的 类模板中的成员函数全部都是模板函数 1)从模板函数实参表获得的信息有矛盾之处。2)需要获得特定类型的返回值,而不管参数的类型如何。3)虚拟类型参数没有出现在模板函数的形参表中
阅读全文
摘要:1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。 上代码: class sin
阅读全文
摘要:static的成员变量,不是存储在Bar实例之中的,因而不会有递归定义的问题。 类声明: 类定义: 当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间。也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间。 那么我们来看如下代码: 上述代码中,由于Scree
阅读全文
摘要:http://blog.csdn.net/xw13106209/article/details/6899370 1.参考文献 参考1: C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定 参考2: 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序 参考3: C++构造函数与析构函数的调用
阅读全文
摘要:static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出
阅读全文
摘要:1 int inc(int a) 2 { 3 return(++a); 4 } 5 int multi(int*a,int*b,int*c) 6 { 7 return(*c=*a**b); 8 } 9 typedef int(FUNC1)(int in); 10 typedef int(FUNC2)
阅读全文
摘要:classA{ public: f(int); }; 这里f函数其实有两个参数,第一个是A*const this, 另一个才是int类型的参数 如果我们不想f函数改变参数的值,可以把函数原型改为f(constint),但如果我们不允许f改变this指向的对象呢?因为this是隐含参数,const没法
阅读全文
摘要:sort()函数是C++中的排序函数其头文件为:#include<algorithm>头文件; qsort()是C中的排序函数,其头文件为:#include<stdlib.h> 1、qsort() 六类qsort排序方法 qsort函数很好用,但有时不太会用比如按结构体一级排序、二级排序、字符串排序
阅读全文
摘要:转载自:http://www.cnblogs.com/lidabo/p/3790606.html ,感谢作者! 问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, class A { private: int n1; int n2; public: A():n2(0),n1(n2
阅读全文
摘要:数组指针和指针数组的区别 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值: int a[3][4]
阅读全文
摘要:#include <iostream>using namespace std;int main() { union endian { int data; char ch; }test; test.data=0x12345678; if(test.ch == 0x78) cout << "little
阅读全文
摘要:c++中类所占的大小计算并没有想象中那么简单,因为涉及到虚函数成员,静态成员,虚继承,多继承以及空类等,不同情况有对应的计算方式,在此对各种情况进行总结。 首先要明确一个概念,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 我们这里指的类的大小,其实指的是类的对象所占的大小。因此,如果用s
阅读全文
摘要:int *p[5]; 由于下标运算符 [] 比 * 运算符的优先级髙,p 首先与下标运算符 [] 相结合,说明 p 为数组,该数组中有 5 个元素,每个为 int * 型。即 p 为指针数组。 int (*ap)[2];()优先级高。定义了一个指向包含有两个元素的数组的数组指针。数组指针是指向一个数
阅读全文
摘要:何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。 C++中的 s
阅读全文
摘要:本文转载自 http://www.cnblogs.com/kaituorensheng/p/3477630.html,感谢作者分享 1. 类成员为const类型 2. 类成员为引用类型 究其因 const对象或引用只能初始化但是不能赋值。构造函数的函数体内只能做赋值而不是初始化,因此初始化const
阅读全文
摘要:本文转载自 http://blog.csdn.net/lwbeyond/article/details/6202256,在此感谢作者 CTemp B(A); //复制构造函数,C++风格的初始化 CTemp B=A; //仍然是复制构造函数,不过这种风格只是为了与C兼容,与上面的效果一样.在这之前B
阅读全文