1、考虑下面的方法
void Print(const Student& s)
{
printf("Student[%s:%d]\n",
s._Name.c_str(),
s._Age);
}
2、方法Print接收一个Student对象,定义Student对象,并调用方法,有哪些方式?
方式一:
Student s;
Print(s);
方式二:
Student s = Student();
Print(s);
方式三:
Print(Student()); // 匿名对象
方式四:
Student* s = new Student();
Print(*s);
方式五:
Student* s = new Student;
Print(*s);
注意:不能使用下面的方式,
Student s();
Print(s);
报错 “Print”: 不能将参数 1 从“Student (__cdecl *)(void)”转换为“const Student &”
原因是:编译器把Student s(); 当成一种方法声明,返回Student,接收void。 也就是说:当存在多种解释的时候,编译器会优先认为某种解释,而这种解释可能不是你所期望的。
相关文章
- PHP面向对象的标准
- c++ 中关于int,unsigned int , short的关系与应用
- JS对象与Dom对象与jQuery对象之间的区别
- O-C相关-06:对象与对象的关系
- [置顶] SpecDD系列:“完成” 的定义
- 运用正则+replace+substring将一段英语的字母大写 angurlar运用自定义指令filter完成首字母大写
- 在Delphi中使用C++对象(两种方法,但都要改造C++提供的DLL)
- 自定义silverlight中datagrid的排序事件
- Python 3.x自定义迭代器对象
- java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。