C++ 对象的定义
2015-07-05 10:31
483 查看
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。 也就是说:当存在多种解释的时候,编译器会优先认为某种解释,而这种解释可能不是你所期望的。
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。 也就是说:当存在多种解释的时候,编译器会优先认为某种解释,而这种解释可能不是你所期望的。
相关文章推荐
- C++ 函数适配器
- 《C语言及程序设计》实践参考——拆分链表
- C++ Primer学习笔记(10)——如何读写文件
- 《C语言及程序设计》实践参考——链表的合并
- 《C语言及程序设计》实践项目——链表初步
- visual C++ 2003
- 《C语言及程序设计》程序阅读——链表初步
- c++ primer 学习笔记 3 变量与基本类型
- c++读书笔记——类的定义
- hdu2024C语言合法标识符
- C++Mfc中读出文件夹里面的相关文件
- 汇编学习-汇编指令与C语言
- C/C++中const的用法
- C/C++中const的用法
- C++对象内存布局 (一)
- Jenkins Smiple use
- 百家姓排序(C++)
- VC++实现生成右键菜单及添加图标
- c++学习-多态性
- 浙大PatC语言练习50-76