c➕➕类与对象友元类的应用

img

img

img

img


下面这些错误要怎么改啊
const那个哪里来的啊,前面并没有定义const char啊

你传的是字符串常量, 如果要用字符指针接收,必须是 const修饰,标记它是不可修改的才行

char * name 
// 上面这种字符指针入参,都加上 const修饰
const char * name
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7565942
  • 这篇博客你也可以参考下:更改const char*的值更改的是什么?
  • 除此之外, 这篇博客: const函数形参char *中的 第一种 const修饰的字符串指针 赋值给 临时变量字符串指针 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include<stdio.h>
    
    void testfunc(const char *teststr)
    {
        char *temp;
        temp = teststr;
    
        printf("before change, the teststr is : %s\r\n", teststr);
    
        temp[1] = 'C';
    
        printf("after change, the teststr is : %s\r\n", teststr);
    
        return;
    }
    
    int main()
    {
        char teststr[20] = "hello world.";
    
        testfunc(teststr);
    
        return 0;
    }
    
    报错信息:
    D:\myproject\tempfiles_for_c_c++\blanckt.cpp|6|error: invalid conversion from 'const char*' to 'char*' [-fpermissive]|
    

    const修饰字符串指针,表明teststr指向的内容不可更改。直接将指针的值复制给一个临时字符串指针变量,编译器会报错拦截。
    这里编译器的告警还是做得很不错的。当然,这里仅仅只是个类型转换错误的告警。

  • 您还可以看一下 尹成老师的终极版C语言(十五)课程中的 补充const常量与宏的差别小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^