
C++
文章平均质量分 86
hxz_qlh
彦祖老师 http://hxz.ink
展开
-
C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2013-10-23 19:07:26 · 769 阅读 · 0 评论 -
动态分配、删除二维数组
装X犯分两种:装得好的和装得不好的。如果装X装得好,其实也挺牛X,但如果装X装得不好,那就还不如直接干脆的傻X。 在电影导演里,王家卫是一个装X装得好的例子(实际上他是一个天才的装X导演),娄烨、张元之流是装X装得不好的例子。在电影演员里,约翰.马尔科维奇是最伟大的装X演员,装X装得非常酷,汤姆.克鲁斯则是装X装得不好的例子,装得不好的还有谢霆锋、基努.里维斯这样的货色。在音乐人里,喜多郎、达原创 2013-10-29 21:57:33 · 1086 阅读 · 0 评论 -
c++中内存分配方式
一个由C/C++编译程序占用内存分为以下几个部分1、栈区(stack):由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。2、堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,它与数据结构中堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static):全局变量和静态变量存储是放在一块,初始化全局变量和静态变原创 2013-11-01 19:03:33 · 1357 阅读 · 0 评论 -
《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数
我想以重复本文的主题开篇:不要在类的构造或者析构函数中调用虚函数,因为这种调用不会如你所愿,即使成功一点,最后还会使你沮丧不已。如果你以前是一个Java或者C#程序员,请密切注意本节的内容-这正是C++与其它语言的大区别之一。 假设你有一个为股票交易建模的类层次结构,例如买单,卖单,等等。为该类交易建立审计系统是非常重要的,这样的话,每当创建一个交易对象,在审计登录项上就生成一个适当的入原创 2013-11-02 21:55:33 · 12731 阅读 · 1 评论 -
《More Effective C++》条款26:限制某个Class所能产生的对象数量
问题来源:假设系统中只有一台打印机,如何把打印机对象数止限定为一个。或者系统只提供16个可分发出去的文件描述符,如何确保文件描述符对象存在的数目不能超过16个。在具体的应用过程中,我们可能需要限制某个类所产生的对象数量。下面我们先从简单的问题的开始。1.如何允许建立零个对象? 实例化一个对象时,将调用一个构造函数,因而阻止建立某个类的对象,最容易的方法就是把该类的原创 2013-11-04 21:15:34 · 1153 阅读 · 0 评论 -
C++中构造函数和析构函数能不能被显示调用?
#include using namespace std;class A{public: A() { cout << "Default constructor is called./r/n"; } A(int ix) { cout << "Another constructor is called./r/n";原创 2013-11-04 22:33:08 · 1481 阅读 · 0 评论 -
C++智能指针
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函原创 2013-11-07 10:11:35 · 818 阅读 · 0 评论 -
C++关键字:mutable
关键字 mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态。 然而在一些情况下,对象的逻辑状态与其物理状态之间可能有差别。例如,对于一个表示绘画图像的对象就存在这种情况。如果图像还没有更原创 2013-11-07 20:32:12 · 1171 阅读 · 0 评论 -
C++虚函数、虚继承、对象内存模型
一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,原创 2013-11-09 00:48:47 · 5519 阅读 · 0 评论 -
C++笔试题(2),持续更新中……
1.本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能原创 2013-11-21 18:05:07 · 1565 阅读 · 0 评论 -
海康威视2014校园招聘C++笔试题
void fun(int a,int* b,int& c,int*& d){ a=0; *b=2; c=3; *d=4;}int _tmain(int argc, _TCHAR* argv[]){ int a=0; int* b=&a; int& c=a; int*& d=b; fun(a,b,c,d); cout<<a<<" "<<*b<<" "<<c<<" "<<原创 2013-11-12 21:27:45 · 4441 阅读 · 0 评论 -
《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?
昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。原创 2013-10-26 21:27:41 · 9393 阅读 · 4 评论