宏函数定义继承类


//: ORDER.CPP -- Order of constructor calls
// with inheritance
#include <iostream.h>

#define inherit(derived, base) class derived : public base { public: derived() { cout << #derived << endl; } };

class X {};
inherit(A, X)
inherit(B, A)
inherit(C, B)

main() { C c; }

输出结果:

A
B
C

宏函数定义继承类,布布扣,bubuko.com

时间: 2024-10-07 10:01:09

宏函数定义继承类的相关文章

关于宏函数的定义

以前一直以为宏的定义挺简单的,没有写过长的宏函数,最常用的是MAX()的定义,今天写一个宏函数的时候,相对于MAX()来说,稍微有点长,然后踩了一个小坑. 一开始将宏函数定义的时候,为了书写方便,将一个函数写成了几行,但是没有用连接符号连接起来,类似于下面 1 #define CHECK(ret) ({ 2 int ret; 3 ... 4 }) GCC总是提示ret不在范围内.想了半天没有明白怎么回事. 然后我发现了一个问题. 我的VIM定义宏函数时,#define那一行是显示的蓝色,但是我的

构造函数为什么不能为虚函数 &amp;amp; 基类的析构函数为什么要为虚函数

一.构造函数为什么不能为虚函数 1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的.问题出来了,假设构造函数是虚的,就须要通过 vtable来调用,但是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数. 2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到相应的调用.构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀.所以构造函数没有必要是虚

C语言宏函数参数的连接

#include<stdio.h> #define Calculate_Max(A,B) A>B?A:B #define Calculate_Min(A,B) A<B?A:B #define Calculate(A,B,NAME) Calculate_##NAME(A,B) int main(void) {         printf("%d\n",Calculate(5,8,Max));         return 0; } 使用宏函数或者宏函数时,注意如

C程序代码中内嵌as汇编(四、宏函数)

先来回忆下C语言中宏是怎么定义的,最基本的是定义常量:#define MAX_LEN 1024  这是最简单的常数宏定义,其中宏名按规定是要大写的,宏名在预编译时会由后面的值替代掉(预编译四大步骤:1.用宏名后面的值替换宏名:2.加载包含的头文件内容:3.判断逻辑假,并且去掉逻辑假代码:4.删除注释). C语言中宏函数定义格式:#define  FUN_NAME(a, b, c)   (函数体)   值得一提的是参数中最后一个是返回值:函数体中所有的代码都必须在一行上显示,所以需要续航符(反斜线

虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte

#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout << "A:A" <<endl; } virtual void getb(){ cout << "A:B" <<endl; } }; class B :public A{ public: B(){} virtual void g

定义事件类,该事件类必须继承

创建自定义事件的步骤:定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数.创建一个事件类型和一个绑定器对象去绑定该事件到特定的对象.创建自定义事件对象,设置事件参数,并且使用ProcessEvent()方法将这个实例引入事件处理系统.绑定自定义事件的event handler.在event handler中响应事件.代码: #!/usr/bin/env python#coding=utf-8import wx class MyTestE

基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------&gt; 可以返回派生类对象的引用或指针

您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 http://bbs.csdn.net/topics/380238133 的作者无关,不对其内容负责.百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面. 首页 精选版块 移动开发 iOS Android Qt WP 云计算 IaaS Pass/SaaS 分布式计算/Hadoop J

【整理】C++虚函数及其继承、虚继承类大小

参考文章: http://blog.chinaunix.net/uid-25132162-id-1564955.html http://blog.csdn.net/haoel/article/details/1948051/ 一.虚函数与继承 1.空类,空类单继承,空类多继承的sizeof #include <iostream> using namespace std; class Base1 { }; class Base2 { }; class Derived1:public Base1

C++中虚函数工作原理和(虚)继承类…

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531 一.虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数.典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式.vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl.当