不是都说函数名功能类似指针,是一个入口地址嘛,我想问问对于类函数名输出错误是为啥?
#include <iostream>
using namespace std;
class A{
public:
int a1;
char b1;
void printthevalue()
{
cout<<a1<<&a1<<endl;
}
void printthevalue1(int s)
{
a1=s;
cout<<a1<<&a1<<endl;
}
};
void sample()
{
cout<<"this just a fun"<<endl;}
int main()
{
A one;
one.a1=3;
one.b1=8;
one.printthevalue();
one.printthevalue1(90);
sample();
cout<<*sample<<endl;
cout<<&sample;
cout<<sample<<endl;
cout<<one.printthevalue<<endl;
return 0;
}
还有,sample输出的地址为啥是1呢?
34没错,35就有错,都是函数名,为啥呢
void printthevalue() 相当于 void printthevalue(void) 需要理解C++的编译规则
在编译的时候,编译器编译函数,生成一个类似"_printthevalue_void"的名称放在库中,你不带()就相当一个变量,而不是函数
再举个例子 void printthevalue(int, int)编译后,就是 _printthevalue_int_int