C/C++
SGoer
在互联网时代,限制你的只有求知欲。
展开
-
一道腾讯笔试题【深、浅拷贝】
#include class A { int i;};class B { A *p;public: B() { p = new A; } ~B() { delete p; }};void sayHello(B b) {}int main(){ B b; sayHello(b); return 0;}题中的代码如上,问题是上面的代码是否存在问题?其实原创 2015-10-07 22:10:13 · 608 阅读 · 0 评论 -
delete和delete[]的区别
1. new/delete、new[]/delete[] 配套使用总是没错的!2. delete[]适用于带自定义析构函数的对象数组,如果没有自定义析构函数(在内存方面,析构函数主要用于释放对象中其他已分配的内存)也可以使用delete。原创 2015-11-09 14:50:17 · 396 阅读 · 0 评论 -
C语言指针数组与数组指针
一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数转载 2015-09-20 11:40:34 · 299 阅读 · 0 评论 -
C++ operator关键字(重载操作符)
转载自点击打开链接operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载?对于系统的所有操作转载 2015-12-15 15:40:34 · 612 阅读 · 0 评论 -
虚函数表测试代码 帮助理解虚函数表
#include using namespace std;class Base{public: virtual void f() { cout << "Base::f()" << endl; } virtual void g() { cout << "Base::g()" << endl; } virtual void h() { cout << "Base::h()" << e转载 2015-12-15 20:20:44 · 241 阅读 · 0 评论