| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:[求助]又是类的小问题
只看楼主 加入收藏
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
收藏
 问题点数:0 回复次数:5 
[求助]又是类的小问题

刚学到类的修改器方法,别见笑。

我驱动后为什么答案都是1 ?可以运行,但出错了。可以直接看警告信息。
或者,应该怎样改正呢?

/*********************/

#include <iostream>
#include <string>
#include <cassert>
using namespace std;
class Name
{
public:
Name(){};
Name(string first,string middle,string last);
string getFirstName()const;
string getMiddleName()const;
string getLastName()const;
string getSignature()const;

void setFirstName(string newFirstName);
void setMiddleName(string newMiddleName);
void setLastName(string newLastName);

void print(ostream& out)const;
void read(istream& in);

private:
string myFirstName,
myLastName,
myMiddleName;
};
Name::Name(string first,string middle,string last)
{
myFirstName=first;
myLastName=last;
myMiddleName=middle;
}

inline string Name::getFirstName()const
{
return myFirstName;
}

inline string Name::getLastName()const
{
return myLastName;
}

inline string Name::getMiddleName()const
{
return myMiddleName;
}
//下面的吧?,不知道错在哪

inline void Name::setFirstName(string newFirstName)
{
myFirstName=newFirstName;
}

inline void Name::setMiddleName(string newMiddleName)
{
myMiddleName=newMiddleName;
}

inline void Name::setLastName(string newLastName)
{
myLastName=newLastName;
}

inline void Name::read(istream& in)
{
cin>>myFirstName>>myMiddleName>>myLastName;
}

inline void Name::print(ostream& out)const
{
cout<<setFirstName<<' '
<<setMiddleName<<' '
<<setLastName;//73
}

/***********************************/

#include <iostream>
#include "Name.h"
using namespace std;
void main()
{
cout <<"Enter a full name(first,middle,last): ";

Name theName;
theName.read(cin);
theName.print(cout);
cout<<"\n";
theName.setFirstName("yertle");
theName.setLastName("Turtle");
theName.print(cout);
cout<<"\n";
}
/*************************/
警告信息:
d:\学习软件\c++1\msdev98\myprojects\书本253页\name.h(73) : warning C4761: integral size mismatch in argument; conversion supplied
d:\学习软件\c++1\msdev98\myprojects\书本253页\name.h(73) : warning C4761: integral size mismatch in argument; conversion supplied
d:\学习软件\c++1\msdev98\myprojects\书本253页\name.h(73) : warning C4761: integral size mismatch in argument; conversion supplied
Linking...

搜索更多相关主题的帖子: include public middle 修改器 信息 
2007-06-13 15:12
Dam3000
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-5
收藏
得分:0 
其实……很不好意思……我看不懂
inline void Name::read(istream& in)
{
cin>>myFirstName>>myMiddleName>>myLastName;
}

inline void Name::print(ostream& out)const
{
cout<<setFirstName<<' '
<<setMiddleName<<' '
<<setLastName;//73
}

首先不明白的是参数 然后是print的函数体……

FORTRAN他爹说:要有高级语言 就有了烂熟的 Hello World!
2007-06-13 17:11
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 

我也不是很明白,要不然就不会错了。


2007-06-13 17:57
HCL
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-6-13
收藏
得分:0 

函数到没有错啦~建议看一下
inline void Name::print(ostream& out)const
{
cout<<setFirstName<<' '
<<setMiddleName<<' '
<<setLastName;//73
}
里面所输出的内容嘛~setFirstName还是myFirstName?

2007-06-13 21:32
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 

不知道错哪,运行后应该输出人名的,但却输出3个1。。。很闷。


2007-06-13 21:53
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 

大家帮忙调试看下为什么驱动程序运行后结果全是1?


2007-06-15 21:10
快速回复:[求助]又是类的小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019826 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved