系列C++问题请教高手之二:函数指针
看了http://www.codeproject.com/cpp/cout_color.asp,有些不解的地方:
std::cout < < green < < "This text is written in green " < < white < <std::endl;
如果原型如前theendname所示:
basic_ostream& operator < <( basic_ostream& (*_Pfn)(basic_ostream&));
那么对于函数指针green所要带的参数(basic_ostream&)由什么决定??
[解决办法]
由C++标准决定的。
[解决办法]
C++IO类设计如此的
[解决办法]
函数指针只是一个变量,它本身并不需要参数,而只有调用它的时候(或者说通过它调用它所指向的函数的时候),才需要给出参数。
而对于这个函数调用是发生在
basic_ostream& operator < <( basic_ostream& (*_Pfn)(basic_ostream&));
这个operator的函数体中的,当然可以在那里给出参数,其实这是也就是this嘛。比如:
basic_ostream& basic_ostream::operator < <( basic_ostream& (*_Pfn)(basic_ostream&)) {
……
_Pfn(*this);
……
}
[解决办法]
是由这个函数指针指向的那个函数的参数表决定
[解决办法]
呃,这个就是C语言基本语法问题了。你最好找本基础教材看看函数指针的使用。
[解决办法]
更晕了,你什么时候见过C/C++语言,语句可以写在函数外面的?
[解决办法]
背对着taodm,悄悄的说:“嘘!全局变量定义及初始化语句。。。”。:P
[解决办法]
嘿嘿。开个小玩笑。
“ctt1 < < pf1”孤立地放函数外面是有点过于独特了。:P