![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++基础知识(转载)
Phoenix001
精彩每一秒钟!
展开
-
C++中的虚函数(virtual function)
一.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout };class B: public A{public:virtual void foo() { cout };转载 2009-06-27 17:49:00 · 512 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast和const_cast
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。3.1 static_cast用法:static_cast ( exdivssion )该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间转载 2009-06-28 14:35:00 · 386 阅读 · 0 评论 -
C++构造函数初始化顺序
初始化顺序应该是先基类,后基类的变量,再子类的变量、子类的构造函数。。。 #include using namespace std;class base{ public: base () { show(); } void print() {show();} virtual void show() {cout <转载 2009-07-01 09:38:00 · 635 阅读 · 0 评论 -
C++类对象的复制-拷贝构造函数
对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int b =a; 自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include iostream> using namespace std; class Test { public: Test(int转载 2009-06-27 16:44:00 · 400 阅读 · 0 评论 -
C/C++中数据的存储管理
document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text");转载 2009-09-29 22:20:00 · 541 阅读 · 0 评论 -
SetTimer函数计时器
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。 1.1 用WM_TIMER来设置定时器先请看SetTimer这个转载 2009-06-13 17:02:00 · 525 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2009-06-03 14:47:00 · 321 阅读 · 0 评论 -
关于指针的问题,有兴趣可以来看2分钟
今天看到有人问道一段代码,关于指针,觉得有点意思就发上我的注释,大家分析下,可以练练基本功。 struct S { int i; int *p; }; main() { S s; int *p=&s.i; //p指向s的首地址 p[0]=4; //处理s.i p[1]=3; //s.p =3s.p=p;转载 2009-06-03 14:47:00 · 280 阅读 · 0 评论 -
类的大小——sizeof 的研究
先看一个空的类占多少空间? class Base{public: Base(); ~Base();}; 注意到我这里显示声明了构造跟析构,但是sizeof(Base)的结果是1. 因为一个空类也要实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化,所以编译器会给空类隐含的添加一个字节转载 2009-06-03 14:49:00 · 425 阅读 · 0 评论 -
多态性----vptr----vtable
多态性----vptr----vtable 多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include using namespace std; class Base { int a; public:转载 2009-06-03 15:09:00 · 468 阅读 · 0 评论 -
基础系列(关于实参,形参,以及指针)
这里讲讲《彻底搞定C指针》里面一个经典的例子。引出实参,形参和指针。 形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数. 实参:全称为"实际参数"是在调用时传递个该函数的参数. void Exchg1(int x, int y) { int tmp; tmp=x; x=y;转载 2009-06-03 14:45:00 · 247 阅读 · 0 评论 -
C++虚函数表解析(转) ——写的真不错,忍不住转了
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里转载 2009-06-03 15:00:00 · 373 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:view plaincopy to clipboardprint?class ClxBase { public: ClxBase() {}转载 2009-10-27 09:37:00 · 537 阅读 · 0 评论