1.值传递作为参数,加const构不构成重载
int te(const int a)
{
return a;
}
int te(int a)
{
return a;
}
int main()
{
int value = 1;
std::cout << te(value) << std::endl;
}
answer:
不构成,而且还会报重定义的错,因为这是值传递,value只是把值传进去了,并不是把自己传进去。
那么修改也是对a的修改,就是在te函数的作用空间的一个值(变量)。本来值传递就是不改变原来参数的。
2.指针、引用作为参数加const构不构成重载
int te(const int* a)
{
return *a;
}
int te(int* a)
{
return *a;
}
int main()
{
int a = 1;
std::cout << te(&a) << std::endl;
const int b = 2;
std::cout << te(&b) << std::endl;
}
answer:
构成,因为,这样传进去是一个真实有效的值,它把a或者b直接传到函数中,这个const是有效的,因为他会影响到底传进去的这个参数能不能被修改。
3.类里的成员函数加const构不构成重载
class MyClass
{
public:
int test()
{
return 1;
}
int test() const
{
return 1;
}
private:
int num = 0;
};
answer:
构成,因为,它是会影响它的成员变量到底能不能被修改,是有效的。