#关于常对象的用途的提问

常对象有什么实际用途呢 可以总结一下或者用代码片段进行解释 感谢感谢

一次赋值,永远不变,这种对象有很多好处
比如说可以通过共享相同值的对象,只存储一份,因为对象是只读的,共享不用担心某一个实例修改了什么,造成别的连带影响
这种对象可以构成“常量池”
Java中的字符串就是常量对象,虽然是不同语言,不是C++,但是原理是相同的。
还有就是保持对象的原子状态,比如说地址中的省市区,时间中的时分秒,同时构造,而不是分别构造,杜绝了对象状态无效的情况
设想,用2行代码将河北、保定修改为河南、许昌结果代码只执行了前一行,后一行因为什么原因没有执行,产生了一个河南保定的无效地址。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7578268
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【问题探究】字符指针变量指向的字符串常量中的内容不能修改
  • 除此之外, 这篇博客: 本题要求实现一个统计整数中指定数字的个数的简单函数。中的 输出样例: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Number of digit 2 in -21252: 3

    结尾无空行


    int CountDigit( int number, int digit ){
        int t, count=0;
        if(number!=0){
            if(number<0){
            number=-number;
            }
            while(number!=0){
                t=number%10;
                if(digit==t){
                    count++;
                }
                number/=10;
            }
        }else{
            count=1;
        }
        return count;
    }

  • 您还可以看一下 郑逊敏老师的抖音快手短视频自媒体制作引流运营兼职创业赚钱盈利实战教程课程中的 抖音平台的推荐算法机制小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    常对象在C++中的实际用途包括但不限于以下几个方面:

    1. 防止误操作:常对象可以用来防止对对象的数值进行修改。在一些情况下,我们希望某个对象的数值在声明后不被修改,以避免误操作。通过使用const关键字声明对象,可以确保对象的值保持不变。

    例如,在结构体中使用const可以防止对结构体内的信息进行修改:

    struct Student {
       const int id;
       const string name;
    };
    
    void ChangeInformation(const struct Student* stu) {
       // stu->id = 12345; // 错误,无法修改id
       // stu->name = "John"; // 错误,无法修改name
       // 其他操作...
    }
    
    1. 限制指针的操作:通过将const关键字应用于指针变量,可以限制指针的操作。常量指针表示指针所指向的对象不能被修改,但指针本身可以改变;指针常量表示指针本身不能改变,但指向的对象可以被修改。

    例如:

    void foo(const int* ptr) {
       // *ptr = 10; // 错误,无法修改指针所指向的对象
       ptr++; // 可以改变指针本身的值,指向下一个内存位置
    }
    
    void bar(int* const ptr) {
       *ptr = 10; // 可以修改指针所指向的对象的值
       // ptr++; // 错误,无法改变指针本身的值
    }
    
    int main() {
       int x = 5;
       const int y = 10;
    
       foo(&x);
       // foo(&y); // 错误,无法传递常量的地址给非常量指针
    
       int* const ptr = &x;
       *ptr = 20; // 可以修改指针所指向的对象的值
       // ptr = &y; // 错误,无法改变指针的值
    
       return 0;
    }
    
    1. 函数重载:常对象可以用于限制调用特定函数的对象类型。常对象只能调用常成员函数,而不能调用非常成员函数。

    例如:

    class MyClass {
    public:
       void nonConstFunc() {
          // 操作...
       }
    
       void constFunc() const {
          // 只读操作...
       }
    };
    
    int main() {
       MyClass obj;
       const MyClass constObj;
    
       obj.nonConstFunc(); // 可以调用非常成员函数
       obj.constFunc(); // 可以调用常成员函数
    
       // constObj.nonConstFunc(); // 错误,常对象不能调用非常成员函数
       constObj.constFunc(); // 可以调用常成员函数
    
       return 0;
    }
    

    以上是常对象在C++中的一些实际用途和解释,希望能对你有所帮助。如果你有任何其他问题或需要进一步的解释,请随时提问。