自己写了几行代码,为什么会有这样的结果嘞(为什么加了&Base::之后,都会输出为1?)
Base函数的声明如下:
#pragma once
#include <iostream>
class Base
{
private:
int a;
double b;
public:
Base();
~Base();
void funcA();
void funcB();
void funcC();
};
Base函数的定义如下:
#include "Base.h"
Base::Base()
{
}
Base::~Base()
{
}
void Base::funcA()
{
a = 2;
}
void Base::funcB()
{
std::cout << " 该函数的参数&Base::a为:" << &Base::a << std::endl;
std::cout << " 该函数的参数&Base::b为:" << &Base::b << std::endl;
}
void Base::funcC()
{
std::cout << " 该函数的参数a为:" << a << std::endl;
std::cout << " 该函数的参数a为:" << b << std::endl;
}
调用如下:
#include "Base.h"
void main()
{
Base b;
b.funcA();
b.funcB();
b.funcC();
std::getchar();
}
调用结果如下:
one:
two
three
four
five
再提一下我的疑问:为什么加了&Base::之后,都会输出为1嘞?