65,210
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x):val(x){}
void Print()const
{
cout < < "const:val=" < < val < < endl;
}
/*
void Print()
{
cout < < "val=" < < val < < endl;
}
*/
private:
int val;
};
int main()
{
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x):val(x){}
void Print()const
{
cout < < "const:val=" < < val < < endl;
}
/*
void Print()
{
cout < < "val=" < < val < < endl;
}
*/
private:
int val;
};
int main()
{
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x):val(x){}
void Print()const
{
cout << "const:val=" << val << endl;
}
/*
void Print()
{
cout << "val=" << val << endl;
}
*/
private:
int val;
};
int main()
{
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();//编译器会去找最为匹配的函数原型; 上面将void Print()注释掉,系统将会调用void Print()const
return 0;
}
output:
const:val=10
const:val=20
如果这样的话就会调用相同的,但如果 void Print() 不注释则选择完全匹配。
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x):val(x){}
void Print()const
{
cout <<"const:val=" <<val <<endl;
}
// void Print()
// {
// cout <<"val=" <<val <<endl;
// }
private:
int val;
};
int main()
{
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;
}