• C++编译错误cannot have cv-qualifier


    const关键字放在非静态成员函数声明的尾部,表示该非静态成员函数不修改对象内容。volatile关键字放到非静态函数声明的尾部,表示该非静态成员函数是线程安全的。注意他们都只能放到非静态成员函数声明的尾部,否则会产生如下报错:
    error: non-member function 'xxx' cannot have cv-qualifier

    放到非成员函数声明的尾部

    #include <iostream>
    
    using namespace std;
    
    double getSqureArea(int a) const
    {
        return a * a;
    }
    
    
    int main(int arg, char *argv[])
    {
        cout << getSqureArea(2) << endl;
        return 0;
    }
    编译上面的C++程序,报错如下:
    g++ -c const_volatile_test.cpp -o const_volatile_test.o
    const_volatile_test.cpp:12:28: error: non-member function 'double getSqureArea(int)' cannot have cv-qualifier

    放到静态成员函数声明的尾部

    #include <iostream>
    
    using namespace std;
    
    class CStatic
    {
        private:
        static int static_value;
        public:
        static int get_static_value() const
        {
            return static_value;
        }
    };
    
    int CStatic::static_value = 1;
    int main(int argc,char *argv[])
    {
        cout << CStatic::get_static_value()<<endl;
        return 0;
    }
    编译上面的C++程序,报错如下:
    g++ -c const_volatile_test.cpp -o const_volatile_test.o
    const_volatile_test.cpp:17:39: error: static member function 'static int CStatic::get_static_value()' cannot have cv-qualifier
  • 相关阅读:
    linux find 命令用法
    在linux下使用libsvm
    利用merge sort寻找逆序对
    merge sort
    int与Integer的区别
    java 的回调函数
    weka的libsvm使用
    mysql 常用基准测试工具
    Drupal的taxonomy_manager模块合并分类的方法
    Sphinx数据源配置的一些注意点
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5516904.html
Copyright © 2020-2023  润新知