在调试器中直接把光标移到member function的名称上,或者在Watch窗口里,直接输入class::func(比如:A::func1),观察所得。还可以在程序中直接取得member function的地址。
#include<iostream>
using
namespace
std
#include
"winsock2.h"
#pragma
comment(lib,"ws2_32.lib")
void
main()
{
//初始化:如果不初始化,以下代码将无法执行
WSAData
data
if(WSAStartup(MAKEWORD(1,1),&data)!=0)
{
cout<<"初始化错误,无法获取主机信息..."<<endl
}
char
host[255]
//获取主机名:也可以使用GetComputerName()这个函数
if(gethostname(host,sizeof(host))==SOCKET_ERROR)
{
cout<<"无法获取主机名..."<<endl
}
else
{
cout<<"本机计算机名为:"<<host<<endl
}
//获取计算机IP:gethostbyname也需要初始化(上面已初始化)
struct
hostent
*p=gethostbyname(host)
if(p==0)
{
cout<<"无法获取计算机主机名及IP..."<<endl
}
else
{
//获取本机计算机名
//cout<<"本机计算机名为:"<<p->h_name<<endl
//本机IP:利用循环,输出本机所有IP
for(int
i=0p->h_addr_list[i]!=0i++)
{
struct
in_addr
in
memcpy(&in,p->h_addr_list[i],sizeof(struct
in_addr))
cout<<"第"<<i+1<<"块网卡的IP为:"<<inet_ntoa(in)<<endl
}
}
WSACleanup()
cin.get()
}
C++中函数名就是地址比如:
void a(){}
a就是地址
如果在类AA中.
可以AA::a就是函数的地址
或者&a也表示a的地址,int a = (int)&a
C#中...我所知道的就是把函数定义为委托...就是把普通的函数定义时在前头加上delegate关键字,这之后就相对于C++里的指针用了
http://203.208.39.99/search?q=cache:9KVHFKm1ziYJ:dev.rdxx.com/NET/CSharp/2003-10/10/104058629.shtml+c%23+%E5%87%BD%E6%95%B0%E5%9C%B0%E5%9D%80&hl=zh-CN&ct=clnk&cd=7&gl=cn&st_usg=ALhdy28EMZZ7E16d_zdZU83DmXwyPgNfPQ
这里有委托的详细介绍和C#委托的经典例子
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)