标题:C++类实现中参数如何表示字符串?
只看楼主
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
结帖率:60%
已结贴  问题点数:20 回复次数:10 
C++类实现中参数如何表示字符串?
3-44.cpp
#include<iostream.h>

#include"3-44.h"

void CPerson::get(char a,int b,char c,int d)
{
    name=a;
    num=b;
    sex=c;
    age=d;
};

void CPerson::output()
{
    cout<<name<<' '<<num<<' '<<sex<<' '<<age<<endl;
};

void main()
{
    CPerson o;
    o.get('c',3,'m',5);
    o.output();
}
3-44.h
class CPerson
{
private:
    char name;
    int num;
    char sex;
    int age;

public:
    void get(char,int,char,int);
    void output();
};
这个函数是将每个学生的信息进行初始化并输出来,我想把name从字符形式改为字符串形式,如何改?
搜索更多相关主题的帖子: private include public 字符串 如何 
2013-10-04 21:32
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:5 
函数的定义花括号外怎有;

www.qunxingw.wang
2013-10-05 05:28
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
得分:5 
用字符数组保存字符串吧。char name[128]
2013-10-05 08:03
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
得分:5 
添加:using namespace std;
然后将char类型改成string类型,代码如下:

#include<iostream.h>
using namespace std;
class CPerson
{
private:
    string name;
    int num;
    string sex;
    int age;

public:
    void get(string,int,string,int);
    void output();
};
void CPerson::get(string a,int b,string c,int d)
{
    name=a;
    num=b;
    sex=c;
    age=d;
};
void CPerson::output()
{
    cout<<name<<' '<<num<<' '<<sex<<' '<<age<<endl;
};
int main()
{
    CPerson o;
    o.get("姓名: 苏巧儿 \n编号:",3,"\n性别: 女 \n年龄:",25);
    o.output();
    return 0;
}
运行结果如下:


♂ 死后定当长眠,生前何须久睡。♀
2013-10-05 09:48
IT男year
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:106
注 册:2013-6-9
得分:5 
#include<iostream>
#include<string>
using namespace std;
class CPerson
{
private:
     string name;
     int num;
     string sex;
     int age;
 
public:
     void get(string,int,string,int);
     void output();
};
void CPerson::get(string a,int b,string c,int d)
{
     name=a;
     num=b;
     sex=c;
     age=d;
}
 
void CPerson::output()
{
     cout<<name<<' '<<num<<' '<<sex<<' '<<age<<endl;
}
 
void main()
{
     CPerson o;
     o.get("c",3,"m",5);
     o.output();
}
把char该成字符串类型即string,再加一个头文件(#include<string>)就好了。
2013-10-05 10:00
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
得分:0 
回复 2楼 qunxingw
哦,那个好像是编译时候在3-44.h中定义类的时候顺便在3-44.cpp中多添加了,应该要去掉的,谢谢哈。
2013-10-05 12:58
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
得分:0 
回复 4楼 303770957
恩恩,谢谢你哈,我懂了。
2013-10-05 12:59
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
得分:0 
回复 4楼 303770957
可是为什么我在VC6.0中编译会出错?矛头指向using namespace std?

D:\Program Files\C++\VC习题第三章\3-44(1).cpp(2) : error C2871: 'std' : does not exist or is not a namespace
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(6) : error C2146: syntax error : missing ';' before identifier 'name'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(6) : error C2501: 'string' : missing storage-class or type specifiers
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(6) : error C2501: 'name' : missing storage-class or type specifiers
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(8) : error C2146: syntax error : missing ';' before identifier 'sex'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(8) : error C2501: 'string' : missing storage-class or type specifiers
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(8) : error C2501: 'sex' : missing storage-class or type specifiers
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(12) : error C2061: syntax error : identifier 'string'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(15) : error C2065: 'string' : undeclared identifier
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(15) : error C2146: syntax error : missing ')' before identifier 'a'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(15) : error C2182: 'get' : illegal use of type 'void'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(15) : error C2350: 'CPerson::get' is not a static member
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(15) : error C2059: syntax error : ')'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(16) : error C2143: syntax error : missing ';' before '{'
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(16) : error C2447: missing function header (old-style formal list?)
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(24) : error C2065: 'name' : undeclared identifier
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(24) : error C2065: 'sex' : undeclared identifier
D:\Program Files\C++\VC习题第三章\3-44(1).cpp(29) : error C2660: 'get' : function does not take 4 parameters
执行 cl.exe 时出错.

3-44(1).exe - 1 error(s), 0 warning(s)

求教。。
2013-10-05 13:22
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
得分:0 
回复 5楼 IT男year
好,谢谢你。
2013-10-05 13:25
美珊
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-10-4
得分:0 
回复 8楼 美珊
哦,那个刚才我看了一下9楼的代码
#include<iostream>
#include<string>
using namespace std;
发现iostream和iostream.h的不同,还有就是要添加#include<string>哈,那个iostream.h好像不能用using namespace std;
恩,还是很谢谢你,我解决了问题了。
2013-10-05 13:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-421449-1-1.html




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

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