| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:麻烦各位哥们帮帮忙啊,下面这个string类不会在class里面用,求衣哥们帮忙解 ...
只看楼主 加入收藏
书生小白
Rank: 2
等 级:论坛游民
帖 子:39
专家分:16
注 册:2011-6-14
结帖率:42.86%
收藏
已结贴  问题点数:10 回复次数:10 
麻烦各位哥们帮帮忙啊,下面这个string类不会在class里面用,求衣哥们帮忙解决下啊,多谢来了急~~~~
using namespace std;
#include <string>
#define NULL 0
class stu
{
private:
    int num;
    string name;
public:
    void display();

};
void display();
void play(class stu *p);
class stu *head=NULL;
int main()
{
    display();
    return 0;
}
void stu::display()
{
    class stu *p1;
    p1=new stu;
    cout<<"请输入学生信息"<<endl;
    cin>>p1->num;
    cin>>p1->name;
    play(p1);
}
void play(class stu *p)
{
    string name;
    class stu *p1;
    cin>>name;
    while(strcmp(name,p->name)==0)
    {
        cout<<p->num<<endl;
        cout<<o->name<<endl;
    }
}
搜索更多相关主题的帖子: private return 
2011-06-15 10:26
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:10 
#include<iostream>
#include <string>
using namespace std;
#define NULL 0
class stu
{
private:
    int num;
    string name;
public:
    void display();
    //声明两个存取器方法,用来调用和设定num,name的值
    const int getNum(){return num;};
    void setNum(int itsNum){num=itsNum;};
    const string getName(){return name;};
    void setName(string itsName){name=itsName;};
};
void display();
void play(class stu *p);
class stu *head=NULL;
int main()
{
    stu s1;
    s1.display();
    return 0;
}
void stu::display()
{
    class stu *p1;
    p1=new stu;
    int num;
    string name;
    cout<<"请输入学生信息"<<endl;
    cout<<"学号    姓名"<<endl;
    cin>>num;
    cin>>name;
    p1->setNum(num);
    p1->setName(name);
    cout<<"打印输入的学生信息"<<endl;
    cout<<"请输入姓名"<<endl;
    play(p1);
}
void play(class stu *p)
{
    string name;
    class stu *p1=p;
    cin>>name;
    while(name==p1->getName())
    {
        cout<<p1->getNum()<<endl;
        cout<<p1->getName()<<endl;
        break;
    }
}
这是我修改过的,有什么不懂再问
2011-06-15 11:11
书生小白
Rank: 2
等 级:论坛游民
帖 子:39
专家分:16
注 册:2011-6-14
收藏
得分:0 
回复 2楼 ToBeStronger
到是能看懂你的意思,但是如果我的私有变量太多呢.还有别的发那个发么,更简单一点的,
2011-06-15 11:24
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:0 
知道我为什么声明存取器函数吗,是因为私有变量是无法直接访问的,即使是类的对象。所以p1->name(p1是指针)是编译不了的。私有变量多,就设多个存取器函数,这没什么麻烦的。
2011-06-15 12:08
书生小白
Rank: 2
等 级:论坛游民
帖 子:39
专家分:16
注 册:2011-6-14
收藏
得分:0 
回复 4楼 ToBeStronger
我也设定是存取器,但是有一种说说法string类不能做参数,这个和刚刚这个问题有什么关系不,但还是谢谢了,刚刚那个我懂了,但是我写的这个代码有500多行,我式过设定存取器,还是报错:
'strcmp' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
这个是什么问题哦。。。。。。
2011-06-15 12:37
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:0 
回复 5楼 书生小白
你那个strcmp你C风格的字符比较,应该只能比较char*,不能string。你既然在预编译里有#include<string>,那就直接用C++里的STL string类的比较方法,即直接用==比较。
2011-06-15 12:57
书生小白
Rank: 2
等 级:论坛游民
帖 子:39
专家分:16
注 册:2011-6-14
收藏
得分:0 
回复 6楼 ToBeStronger
非常感谢,呵呵,还有最后一个问题,就是指针的存取器也是一样的写么?怎么我写的除了指针以外其他的都对.....
2011-06-15 13:11
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:0 
回复 7楼 书生小白
指针的存取器?我不清楚啊,不能这样声明吧。你就用指针指向类的对象,调用对象的方法呗。。。
2011-06-15 13:19
书生小白
Rank: 2
等 级:论坛游民
帖 子:39
专家分:16
注 册:2011-6-14
收藏
得分:0 
回复 8楼 ToBeStronger
貌似现在不能用这个方法,我是在类里面定义指针的,我要建立链表哦。。。。哥们,还有什么别的方法不....
2011-06-15 13:50
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:0 
我不太清楚你的意思,你说你要建链表,那链表的每一个节点不都相当于一个指针吗?
2011-06-15 16:11
快速回复:麻烦各位哥们帮帮忙啊,下面这个string类不会在class里面用,求衣哥们 ...
数据加载中...
 
   



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

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