关于构造函数形参问题
来源:互联网 发布:工行贵金属看盘软件 编辑:程序博客网 时间:2024/05/17 03:50
#ifndef TABTENN0_H_#define TABTENN0_H_#include<string>using std::string;class TableTennisPlayer{private:string firstname;string lastname;bool hasTable;public:TableTennisPlayer(const string &fn="none",const string &ln="none",bool ht=false);void Name()const;bool HasTable()const{return hasTable;};void ResetTable(bool v){hasTable=v;};};#endif
#include<iostream>#include"tabtenn0.h"TableTennisPlayer::TableTennisPlayer(const string &fn,const string &ln,bool ht){firstname=fn;lastname=ln;hasTable=ht;}void TableTennisPlayer::Name()const{std::cout<<lastname<<","<<firstname;}
#include<iostream>#include"tabtenn0.h"int main(){using namespace std;TableTennisPlayer player1("Chuck","Blizzard",true);TableTennisPlayer player2("Tara","Boomdea",false);player1.Name();if(player1.HasTable()){cout<<": has a table."<<endl;}elsecout<<": hasn't a table."<<endl;player2.Name();if(player2.HasTable()){cout<<": has a table."<<endl;}elsecout<<": hasn't a table."<<endl;cin.get();return 0;}
注意但该程序实例化对象使用的是C风格字符串作为参数:
<span style="white-space:pre"></span>TableTennisPlayer player1("Chuck","Blizzard",true);TableTennisPlayer player2("Tara","Boomdea",false);
但构造函数的形参类型被声明为const string &.这导致类型不匹配,但与第12章创建的String累一样,string类有一个将const char *作为参数的构造函数,使用C风格字符串初始化string对象时,将自动调用这个构造函数。总之,可将string对象或C风格字符串作为构造函数TableTennisPlayer的参数;将前者作为参数时,将调用接受const string &作为参数的string构造函数,而将后者作为参数时,将调用接受const char *作为参数的string构造函数。
0 0
- 关于构造函数形参问题
- 关于C++ 构造函数调用构造函数的问题
- 关于构造函数与拷贝构造函数的问题
- 关于子类构造函数中的super问题
- 一点关于复制构造函数的问题
- 关于拷贝构造函数的一个问题
- 关于构造函数的调用问题
- 关于fragment的构造函数问题
- 关于JAVA中构造函数的问题
- 关于构造函数继承的一些问题
- 关于qt的问题构造函数的问题
- 关于构造函数,拷贝构造函数与析构函数的自动调用的问题分析
- 关于派生类构造函数与基类构造函数的调用顺序问题
- 关于派生类构造函数与基类构造函数的调用顺序问题
- 关于派生类构造函数与基类构造函数的调用顺序问题
- 关于派生类构造函数与基类构造函数的调用顺序问题
- 关于PHP中构造函数以及子类继承父类构造函数的相关问题
- 关于复制构造函数
- Java并发编程 同步容器
- mysqldump 1193 错误解决方法
- maven web jsp引入jar
- interView - Intent和IntentFilter
- 拓展训练感受团队魅力
- 关于构造函数形参问题
- Eclipse 操作 Crystal Report 笔记
- spring上传图片
- JS子窗口向父窗口传值
- [序章] 开始之初
- html5的postmessage实现js前端跨域访问及调用解决方案
- Android内容提供者(ContentProvider)浅析(二)
- 作为一个新人,怎样学习嵌入式Linux?(韦东山)
- IO端口与IO内存