⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptrmem8.c

📁 this is a gcc file, you can download it and learn its usetility, for further detail please look at t
💻 C
字号:
// Copyright (C) 2000 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 22 Nov 2000 <nathan@codesourcery.com>// bug 827. We died issuing warnings about dangerous pointer to member// conversions.struct bar{  int barm;    static void a();};struct filler1 {int fm;};struct filler2 {int fm;};struct filler3 {int fm;};struct filler4 {int fm;};struct baz : filler1, bar, filler2{  int bazm;};struct foo : filler3, virtual baz, filler4{    static void a();    void b() {};    int m;};typedef void (bar::*barfPtr)();typedef void (foo::*foofPtr)();typedef int bar::*barmPtr;typedef int foo::*foomPtr;int main (){  foofPtr fp = &foo::b;  barfPtr bp = (barfPtr)fp;         // WARNING - pointer to member  foofPtr fp2 = (foofPtr)bp;        // WARNING - pointer to member    if (fp2 != fp)    return 1;    foo fobj;  fobj.filler1::fm = 1;  fobj.filler2::fm = 2;  fobj.filler3::fm = 3;  fobj.filler4::fm = 4;  fobj.bazm = 5;  fobj.barm = 6;  fobj.m = 78;    foomPtr fmp = &foo::m;  barmPtr bmp = (barmPtr)fmp;          // WARNING - pointer to member  foomPtr fmp2 = (foomPtr)bmp;         // WARNING - pointer to member  bar *bptr = &fobj;    if (fmp != fmp2)    return 2;    if (bptr->*bmp != 78)    return 3;    bp = reinterpret_cast <barfPtr> (fp);  fp2 = reinterpret_cast <foofPtr> (bp);  if (fp2 != fp)    return 4;    bmp = reinterpret_cast <barmPtr> (fmp);  fmp2 = reinterpret_cast <foomPtr> (bmp);  if (fmp != fmp2)    return 5;    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -