- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 类模板定义(重载运算符)
template class BigNumber{ long n;public: BigNumber (T i):n(i) { } BigNumber operator+(BigNumber b) { return BigNumber(n+b.n); }};有如上的类模板定义,已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是(D)A、3+3 B、b1+
2017-12-27 11:00:45 2948
原创 多维数组中指向的值
#include using namespace std; int main() { int a[2][2][3]={{{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}}; int *ptr=(int *)(&a+1); printf("%d %d",*(int*)(a+1),*(ptr-1)); return 0;}输出
2017-12-27 10:52:33 211
原创 浅拷贝构造函数
#include using namespace std; class A{ int i;};class B{ A *p;public: B() { p= new A; } ~B(){ delete p; } /* B(const B& this) { p=this.p; } */};void sayHello(B b) {}
2017-12-27 10:09:39 319
原创 C++中虚拟继承问题
#includeusing namespace std;class A{public: A(char *s) { cout<<s<<endl; } ~A(){}};class B: virtual public A {public: B(char *s1,char *s2):A(s1){ cout<<s2<<endl; }};class C:virtual p
2017-12-26 23:36:55 317
原创 链表中定义结点在C/C++中的区别
为了建立如图所示的存储结构(即每个结点含有2个域,data是数据域,next是指向结点的指针域),则在[]处应填写的选项是:Bstruct link {char data;[];}node;A、link next; B、struct link *next;C、link * next; D、struct link next;在C++语言中,B和C选项都可以;但在C语言
2017-12-25 22:24:06 2095
原创 未定义行为
未定义行为是指C语言标准未做规定的行为。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果;或者程序调用未定义行为,可能会成功编译,甚至一开始运行时没有错误,只会在另一个系统上,甚至在另一个日期运行失败。当一个未定义行为的实例发生时,“什么事情都可能发生”,也许什么都没有发生。未定义行为就是运行结果不确定。eg:
2017-12-25 22:07:48 535
转载 map和set异同
节选一: MAP的节点是一对数据. SET的节点是一个数据.Map使用关键值Key来唯一标识每一个成员 map可以重复。set是集合 都属于关联容器 只不过,map的形式 map mymap; set的形式 set myset;
2017-12-14 22:41:52 284
转载 C++中重载和覆盖的区别
一. 重载(overload)1. 重载指的是函数具有的不同的参数列表,而函数名相同的函数。重载要求参数列表必须不同,比如参数的类型不同、参数的个数不同、参数的顺序不同。2. 如果仅仅是函数的返回值不同是没办法重载的,因为重载要求参数列表必须不同。3. 程序是根据参数列表来确定具体要调用哪个函数的4. 看下面几个例子void Fun(int a);v
2017-12-14 22:17:28 2548
转载 面向对象与面向过程的区别
学习C++一般都会思考这个问题,c++里的++到底比C语言多了什么东西,有什么不一样呢??首先一个问题就是类与对象,那么我们就必须要理解面向对象和面向过程的区别,经过查阅资料以及网上很多大神们的讲解,我小小总结一下,我喜欢用实例来讲解,所以比较的时候多以实例为主:1.面向对象和面向过程的区别:面向过程:procedure oriented programming POP
2017-12-14 21:49:47 305
转载 堆和栈的区别
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回 事,分配方式倒是类似于链表。
2017-12-14 20:54:40 151
转载 为什么要进行内存对齐以及对齐规则
#includeusing namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout<<sizeof(A)<<endl; cout<<sizeof(B)<<endl; r
2017-12-14 20:23:49 511
原创 条款03 尽可能使用const
const允许指定一个语义约束(也就是指定一个“不该被改动”的对象),而编译器会强制实施这项约束。它允许你告诉编译器和其他程序员某值应该保持不变。const可以用在classes外部修饰global或者namespace作用域中的常量,或修饰文件、函数、或区块作用域中被声明为static的对象。也可以修饰classes内部的static和non-static成员变量。char gr
2017-12-13 17:15:30 271
MySql必知必会
2017-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人