首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符类型转换不兼容

字符类型转换不兼容
EN

Stack Overflow用户
提问于 2020-02-13 17:52:53
回答 1查看 104关注 0票数 0

一个基于构造器的程序

代码语言:javascript
复制
    Error -Incompatible  Type conversion from char to char[100]

代码-

代码语言:javascript
复制
    #include<iostream>
    using namespace std;
    class demo
    {
    public:
        char name[100];
//This is where char is declared
        int marks;

        demo()
        {
            marks = 0;
            name = "Pro"; 
//assigning value to the char
            cout<<"Working"<<endl;
        }

        void input()
        {
            cout<<"Enter Name and Marks"<<endl;
            cin>>name>>marks;
        }
        void output()
        {
            cout<<name<<"\t"<<marks<<endl;
        }
    };

我试着把name放在'name‘和"name“中,我也试着使用类型转换(char),但似乎不起作用

代码语言:javascript
复制
int main()
        {
            demo Obj1, Obj2;
    //creating objects
            Obj1.output();
            Obj2.input();
            Obj2.output();
            return 0;
        }
EN

回答 1

Stack Overflow用户

发布于 2020-02-13 18:01:11

数组没有复制赋值运算符。

所以构造函数中的这条语句

代码语言:javascript
复制
name = "Pro"; 

是错误的。

你必须要写

代码语言:javascript
复制
#include <cstring>

//...

std::strcpy( name, "Pro" );

或者一种更简单的方法是重写构造函数,如下所示

代码语言:javascript
复制
    demo() : name { "Pro" }, mark( 1 )
    {
        cout<<"Working"<<endl;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60204936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档