鱼C论坛

 找回密码
 立即注册
查看: 4603|回复: 4

请各位大神帮忙看看,编译器老是说我有一个错,是在是找伤心了

[复制链接]
发表于 2013-4-2 12:43:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
#include<string>
using namespace std;
class student
{
private:
        string name;
        int age;
        string yuan;
        int num;
public:
        student()                //构造函数
        {
                name="haha";
                age=11;
                yuan="lixueyuan";
                num=222222;
        }
        void set(string &s);                     //对整个student的设置
        void SetName(string name1);
        void SetAge(int age1);
        void SetYuan(string yuan1)            {        yuan=yuan1;}
        void SetNum(int num1)                 { num=num1;}
        void change_name(string name2)        {        name=name2;}
        void change_age(int age2)             { age=age2;}
        void change_yuan(string yuan2);
        void change_num(int num2);
        void print()
{
        cout<<"name"<<name<<endl<<"age"<<age<<endl<<"yuanxi"<<yuan<<endl<<"num"<<num<<endl;
}
};
void student::SetName(string name1)
{
        name=name1;
}
void student::SetAge(int age1)
{
        age=age1;
}
void student::change_yuan(string yuan2)
{
        yuan=yuan2;
}
void student::change_num(int num2)
{
        num=num2;
}
void student::set(string &s)                     //shenma-20-lixueyuan-222222
{
        name=s.substr(0,6);
        age=atoi(s.substr(7,2).c_str());
        yuan=s.substr(10,9).c_str();
        num=atoi(s.substr(20,6).c_str());
}

int main()
{
        student a;
        a.set("shenma-20-lixueyuan-222222");
        a.print();
        a.SetName("shenma");
        a.SetAge(20);
        a.SetYuan("lixueyuan");
        a.SetNum(118028);
        a.print();
        a.change_name("shendaye");
        a.change_age(22);
        a.change_num(222222);
        a.change_yuan("xinguanxueyuan");
        a.print();
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-2 14:08:42 | 显示全部楼层
a.set("shenma-20-lixueyuan-222222");这句的问题吧,因为set函数的参数是一个引用,直接付一个常量给它应该是不行的吧,
eg1:
str = ("shenma-20-lixueyuan-222222";
a.set(str);
eg2:
void set(string &s);  ---》 void set(string s);
反正传的s没必要使用引用
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-2 14:10:03 | 显示全部楼层
。。打快了。。这句:string  str = "shenma-20-lixueyuan-222222";
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-2 16:36:03 | 显示全部楼层
我也同意楼上的解释,楼主这程序传参用的是应用,即公用一个地址,常量在程序中是不能被改变的。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-4-3 20:05:25 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-7 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表