首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学C++,这段代码错哪了

2012-09-14 
初学C++,请高手看看这段代码哪里错了#include stdafx.hclass C1{public:void ( C1::*LL)()staticvoid C

初学C++,请高手看看这段代码哪里错了
#include "stdafx.h"

class C1
{
public:
void ( C1::*LL)();
staticvoid C1fu();

void funa()
{
LL=C1::C1fu;
(*LL)();

}

};

void C1::C1fu()
{
printf("1");
}
int main(int argc, char* argv[])
{

C1 c1;
c1.funa();

return 0;
}

[解决办法]
LL并非成员变量
[解决办法]

C/C++ code
/* Auther:独酌逸醉 * Date:2012.08.05 * IDE: Code::Blocks 10.05 * OS: Windows 7 */#include <iostream>#include <cstdio>class C1{public:    typedef void (*LL)();    LL ll;    static void C1fu();    void funa()    {        ll = (LL)C1fu;        (*ll)();    }};void C1::C1fu(){    printf("1");}int main(int argc, char* argv[]){    C1 c1;    c1.funa();    return 0;}
[解决办法]
LZ,昨天回答了你的那个问题。还在纠结这个??。。。你那个是成员函数指针。。而你那个static是没有隐藏的this指针的。。所以是行不通的。。
[解决办法]
你这个连语法都没通过,你的函数指针LL没有声明。

把void funa()函数改成下面这样就可以了。
void funa()
{
void (*LL)();//声明LL为一个函数指针,该函数没有形参,函数的返回值类型为void
LL=C1::C1fu;
(*LL)();

}

热点排行