注册 登录
编程论坛 C++教室

本人菜鸟 希望各为指教

huang1938120 发布于 2012-10-30 17:13, 442 次点击
//header1.h(头文件)
#include "stdafx.h"
#include<string>
#include<cmath>
using namespace std;
namespace ns1
{
    class Student
    {
    public:
        Student(int n,string nam,int a)
        {
            num=n;name=nam;age=a;
        }
    void get_data( );
    private:
        int num;
        string name;
        int age;
    };
    void Student::get_data( )
    {
        cout<<num<<" "<<name<<" "<<age<<endl;
    }
    double fun(double a,double b)
    {
        return sqrt(a+b);
    }
}
//header2.h((头文件2)
#include<string>
#include<cmath>
using namespace std;
namespace ns2
{
    class Student
    {
    public:
        Student(int n,string nam,char s)
        {
            num=n;name=nam;sex=s;
        }
    void get_data( );
    private:
        int num;
        char name[20];
        char sex;
    };
    void Student::get_data( )
    {
        cout<<num<<" "<<name<<" "<<sex<<endl;
    }
    double fun(double a,double b)
    {
        return sqrt(a-b);
    }
}
//main file(主文件)
#include<iostream>
//#include"cc14-5-h1.h"  //请问这是干吗用的
//#include"cc14-5-h2.h"   //请问这是干吗用的
using namespace std;
int main( )
{
    ns1::Student stud1(101,"Wang",18);
    stud1.get_data( );
    cout<<ns1::fun(5,3)<<endl;
    ns2::Student stud2(102,"Li",'f');
    stud2.get_data( );
    cout<<ns2::fun(5,3)<<endl;
    return 0;
}
 
d:\我的文档\visual studio projects\1\1.cpp(43) : error C2440: “=” : 无法从“std::string”转换为“char [20]”
        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
请问这是什么错误 希望各位大神可以告诉俺   

[ 本帖最后由 huang1938120 于 2012-10-30 17:24 编辑 ]
6 回复
#2
w5277050902012-10-30 17:58
帮顶啊    我是个初学者   吸收经验中。。。
#3
chensy2012-10-31 18:28
你之前的name用的string类型,但是在头文件2中的NS2中变成了char类型 把char name【20】改成string name即可
#4
huang19381202012-11-01 09:20
回复 3楼 chensy
谢谢 你的回答 虽然还是不行

[ 本帖最后由 huang1938120 于 2012-11-1 09:25 编辑 ]
#5
寒风中的细雨2012-11-01 09:40
程序代码:
//header1.h(头文件)
//#include "stdafx.h"
#include <iostream>
#include<string>
#include<cmath>
using namespace std;
namespace ns1
{
    class Student
    {
    public:
        Student(int n,string nam,int a)
        {
            num=n;name=nam;age=a;
        }
    void get_data( );
    private:
        int num;
        string name;
        int age;
    };
    void Student::get_data( )
    {
        cout<<num<<" "<<name<<" "<<age<<endl;
    }
    double fun(double a,double b)
    {
        return sqrt(a+b);
    }
}
//header2.h((头文件2)
//#include<string>
//#include<cmath>
//using namespace std;
namespace ns2
{
    class Student
    {
    public:
        Student(int n,string nam,char s)
        {
            num=n;
            name=nam;
            sex=s;
        }
    void get_data( );
    private:
        int num;
        string name;
        char sex;
    };
    void Student::get_data( )
    {
        cout<<num<<" "<<name<<" "<<sex<<endl;
    }
    double fun(double a,double b)
    {
        return sqrt(a-b);
    }
}
//main file(主文件)
//#include<iostream>
//#include"cc14-5-h1.h"  //请问这是干吗用的
//#include"cc14-5-h2.h"   //请问这是干吗用的
//using namespace std;
int main( )
{
    ns1::Student stud1(101,"Wang",18);
    stud1.get_data( );
    cout<<ns1::fun(5,3)<<endl;
    ns2::Student stud2(102,"Li",'f');
    stud2.get_data( );
    cout<<ns2::fun(5,3)<<endl;
    return 0;
}
#6
chensy2012-11-01 18:56
回复 3楼 chensy
是么??我改了之后可以啊 五楼应该是正解
#7
zxd5432012-11-02 17:27
看来C++要学的还挺多的
菜鸟能写成这样的程序 太谦虚了

[ 本帖最后由 zxd543 于 2012-11-5 17:56 编辑 ]
1