关于C++ const成员的一些细节
2014-05-11 12:56
381 查看
1.const对象,只能调用const成员函数
2.非const对象可以调用const成员函数和非const成员函数
a.如果类同时具有const重载版本的成员函数和非重载版本,那么该类实例化的非const对象调用该成员函数的时候,会调用非重载版本。
b.如果类只有const版本的成员,那么实例化的非const对象会调用const版本的成员
实例如下:
class A
{
public:
A(){}
~A(){}
void foo()
{
cout << "foo() of A" << endl;
}
void foo() const
{
cout << "const foo() of A" << endl;
}
};
int main()
{
const A a;
a.foo();
A a1;
a1.foo();
return 0;
}
程序运行结果:
const foo() of A
foo() of A
class A
{
public:
A(){}
~A(){}
void foo() const
{
cout << "const foo() of A" << endl;
}
};
int main()
{
A a;
a.foo();
return 0;
}
运行结果:
const foo() of A
2.非const对象可以调用const成员函数和非const成员函数
a.如果类同时具有const重载版本的成员函数和非重载版本,那么该类实例化的非const对象调用该成员函数的时候,会调用非重载版本。
b.如果类只有const版本的成员,那么实例化的非const对象会调用const版本的成员
实例如下:
class A
{
public:
A(){}
~A(){}
void foo()
{
cout << "foo() of A" << endl;
}
void foo() const
{
cout << "const foo() of A" << endl;
}
};
int main()
{
const A a;
a.foo();
A a1;
a1.foo();
return 0;
}
程序运行结果:
const foo() of A
foo() of A
class A
{
public:
A(){}
~A(){}
void foo() const
{
cout << "const foo() of A" << endl;
}
};
int main()
{
A a;
a.foo();
return 0;
}
运行结果:
const foo() of A
相关文章推荐
- c++中关于const的一些细节问题
- C++ 关于const的一些细节
- C++中关于const的一些理解 (原作于08年11月20日)
- c++关于引用和const的一些问题
- 关于C++的一些细节[五:函数-基础]
- 关于C++的右值、const引用、右值引用、const成员函数及相关扩展
- C++ 第九章 关于类和对象的进一步讨论(二)const的用法和指针数据成员
- 关于C++的一些细节[五:函数-中级]
- 关于C++中const修饰的一些备忘.....【2013.10.23】
- 关于C++中const的一些介绍
- 关于C++在编码时的一些细节
- c和c++关于const的一些区别
- 关于C++中const的一些总结
- c和c++关于const的一些区别
- 关于C++的一些细节[三:复合类型]
- 关于c++的class(偏c++11以前,构造、静态成员、const、初始化列表、友元、内联、template)
- C++中关于const的一些使用惯例
- 关于c->c++过渡的一些小细节
- 关于C++的一些细节[四:循环,分支语句,关系表达式,关系运算符]
- 关于C++的一些细节