yyyf 发表于 2021-3-31 15:14:50

const char* 类型的值不能用于 用于出初始化“char”类型的实体?

#include<iostream>
#include<string>
using namespace std;
class String {
        int Length;
        char* Strp;
        char* s;
public:
        String();                  //重载构造函数1
        String(char* s);//重载构造函数2
        String(String& s); //重载构造函数3
        void Print()
        {
                cout << "String=" << Strp << endl;
                cout << "Length=" << Length << endl;
        }
};
String::String()
{
        Length = 0;
        Strp = new char;
        *Strp = '\0';
}
String::String(char* s)
{
}
String::String()
{
        Length = strlen(s);
        Strp = new char;
        strcpy(Strp, s);
}
String::String(String& s)
{
        Length = s.Length;
        Strp = new char;
        strcpy(Strp, s.Strp);
}
int main()
{
        char* s = "This is a string";
        String str1;
        String str2(s);
        String str3(str2);
        str1.Print();
        str2.Print();
        str3.Print();
}

人造人 发表于 2021-3-31 15:23:37

对呀,一个是 char指针,一个是char,有什么问题吗?

yyyf 发表于 2021-3-31 15:27:20

人造人 发表于 2021-3-31 15:23
对呀,一个是 char指针,一个是char,有什么问题吗?

怎么才能编译通过
严重性        代码        说明        项目        文件        行        禁止显示状态
错误(活动)        E0144        "const char *" 类型的值不能用于初始化 "char *" 类型的实体        Tutorial        E:\Document\C++\C++\Visual studio\newChapter13\Tutorial\13.1.cpp        41       

人造人 发表于 2021-3-31 15:31:47

yyyf 发表于 2021-3-31 15:27
怎么才能编译通过
严重性        代码        说明        项目        文件        行        禁止显示状态
错误(活动)        E0144        "const char *" 类型 ...

这和你的标题不符,你标题上说的是 const char *和 char
你现在的问题是 const char *和 char *
少了一个 *,提问题要认真,提出错误的问题对解决问题没有任何帮助
当然,写代码更要认真

char* s
改成
const char *s

yyyf 发表于 2021-3-31 15:42:54

人造人 发表于 2021-3-31 15:31
这和你的标题不符,你标题上说的是 const char *和 char
你现在的问题是 const char *和 char *
少了一 ...

谢谢大佬对萌新的指导
页: [1]
查看完整版本: const char* 类型的值不能用于 用于出初始化“char”类型的实体?